ls 

-a:显示目录中所有的文件名及子目录名,包括隐藏文件、隐藏目录,以及.和..,注意不会显示子目录中的文件名

-A :和-a差不多,只不过不显示.和..

-h:单位自动换算成易读的单位

-t:按照时间排序

-r:逆序

ls -Altrh

 

grep:在目录或文件中根据正则查找字符串所在行

grep -C 5 "logger.info" ./logs

grep默认只会grep指定目录中的文件,而不会找指定目录的子目录、子子目录、子子子...目录中的文件,如果要递归grep,则需要加-r参数(r是recursive),如grep -r -C 5 "logger.info" ./

默认是区分大小写的,如果不想区分大小写,则需要加-i参数。

默认是全部找出来的,如果只想找一定数量的,则需要加-m参数,grep -i -m 5 "test" a.txt。如果指定了多个文件,那么每个文件都会打印5个匹配行记录。

如果想顺带打印行号,则需要加-n参数。

如果只想打印出匹配正则的字符串,则需要加-o参数。

统计一共有多少个匹配:grep -o "abc" * | wc -l

据说,在grep时加LC_ALL=C前缀会加快grep的速度,如LC_ALL=C grep -i "abc" *

有一个第三方命令ripgrep,据说比LC_ALL=C grep更快。https://github.com/BurntSushi/ripgrep

 

sed:

 

wc:打印文件的行数、单词数、字符数、文件大小。

wc a.txt,会打印出3个数值,第一个数值是行数,第二个数值是单词数,第三个数值是字节数。

wc -l a.tzt,只会打印出行数。-w,只会打印出单词数。-c,只会打印出字节数。-m,只会打印出文件字符数。

 

find:在目录中找文件。

find ./ -name "*.log"

默认不进子目录去找,如果要递归找,则需要加

 

xargs:将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题。

find ./ -name "*.py" ! -name "__init__.py" | xargs rm -rf 

相关文章: