0%

linux file command

delete

1. To delete all files in a directory except filename, type the command below:

1
rm -v !("filename")

2. To delete all files with the exception of filename1 and filename2:

1
rm -v !("filename1"|"filename2") 

3. The example below shows how to remove all files other than all .zip files interactively:

1
rm -i !(*.zip)

4. Next, you can delete all files in a directory apart from all .zip and .odt files as follows, while displaying what is being done:

1
rm -v !(*.zip|*.odt)

AWK

  • awk -v FS="输入分隔符" -v OFS='输出分隔符' '{if($1==$5) print $1,$5,$10}' filename

    查找filename文件(文件中列的分隔符为“输入分隔符”)中,每一行第一列和第五列相等的行,并输出第一列、第五列、第十列,切输出字段分隔符为“输出分隔符”。如果不配置FS和OFS,那么输入输出分隔符均默认为空

  • exclude a column with awk, 比如打印除第5列的其它所有列

    awk ‘{ $5=””; print }’ file

统计文件行数

语法:wc [选项] 文件…

说明:该命令统计给定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所有指定文件的总统计数。字是由空格字符区分开的最大字符串。

该命令各选项含义如下:

  - c 统计字节数。

  - l 统计行数。

  - w 统计字数。

这些选项可以组合使用。

权限

使文件可以直接执行的命令:chmod +x filename

使所有用户对目录都有读写权限:sudo chmod ugo+rw /opt

1
2
3
4
r=4,w=2,x=1
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=7

文件分割

1
2
3
4
5
6
7
split [-a] [-b] [-C] [-l] [要分割的文件名] [分割后的文件名前缀]
–version 显示版本信息
– 或者-l,指定每多少行切割一次,用于文本文件分割
-b 指定切割文件大小,单位 m 或 k
-C 与-b类似,但尽量维持每行完整性
-d 使用数字而不是字母作为后缀名
-a 指定后缀名的长度,默认为2位

将多个分割的文件进行合并

1
cat files_name_1 files_name_2 files_name_3 > files_name

markdown

  • markdown文件转word文件
    1
    pandoc -o output.docx -f markdown -t docx filename.md

find

查找具体文件

1
find / -name 文件名称

ls

ls -lh以可读性G、M查看文件的大小

格式化json

1
echo '{"kind": "Service", "apiVersion": "v1", "status": {"loadBalancer": true}}'|jq .

SED

  • 替换字符linux环境:
    1
    sed -i 's/Search_String/Replacement_String/g' Input_File
    mac环境(需要设置备份,以防文件损坏)
    1
    sed -i .bak 's/Search_String/Replacement_String/g' Input_File

转换文件编码格式

首先我们来看看在 Linux 系统中如何查看文件的编码格式,可以在 vim 中使用如下命令查看:

1
:set fileencoding

输出可能是这样

1
fileencoding=utf-81

也可以使用 fileidentify 命令查看。

然后使用 iconv 进行编码格式的转换,比如将一个 utf-8 编码的文件转换成 GBK 编码,命令如下:

1
$ iconv -f UTF-8 -t GBK input.file -o output.file
  • 如果遇到]iconv: 未知xxxx处的非法输入序列,一种解决方法是加入 -c选项:忽略无效字符
    1
    iconv -c  -f gb2312 -t utf8 test.txt -o output.file
1
2
3
iconv -f gb18030 -t UTF-8 input.file -o output.file

gb18030

tar

  • c – Creates a new .tar archive file.

  • x — to untar or extract a tar file

  • v – Verbosely show the .tar file progress.

  • f – File name type of the archive file.

  • z — gzip archive file

  • j — bz2 feature compress and create archive file

  • t — to list the contents of tar archive file

加密

用zip命令对文件加密压缩和解压

1
2
zip -re filename.zip filename 
回车,输入2次密码

批量替换文件名

1
rename -n -e 's/待替换字符串/替换字符串/'  *.png

查找指定目录下的文件内容

1
grep -rn "info" *