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