最近本人正在学习linux shell,特总结如下:
查找并删除当前目录下所有后缀为.swp文件 :find . -type f -name "*.swp" -exec rm {} \;
其中的 . 代表当前目录 -type f 代表搜索的目标类型为文件 -name "*.swp" 代表搜索所有后缀为.swp的文件 -exec rm {} \;代表没当有一个匹配成功的文件就执行 rm ”匹配成功的文件“的命令
查找当前目录下所有目标类型为目录并且在七天之内访问过:find . -type d -atime -7
其中 -atime -7 代表在7天之内访问过 -atime 后面的参数还可以换成+7 或者 7 +7 代表在7天以前 7代表正好7天
此外 -atime还可以换成 -mtime:在多少天的时间里修改过 -ctime:代表在多少天的时间里改变过(eg:权限和所有权的修改)
-amin -mmin -cmin 这三个后面的参数代表的是多少分钟
查找当前目录下所有目标类型为文件并且权限为664:find . -type f -perm 664
让find调过特定的目录:find . \( -name ".git" -prune \) -o \( -type f -print \)
这条指令会搜索当前目录下除了.git目录之外所有的文件并打印到终端
查找源码目录下所有c文件的行数以及总行数:find /source_code -type f -name "*.c" -print0 | xargs -0 wc -l
find 与 xargs 一起用时最好find与print0结合,否则容易误操作,导致事与愿违!
熟读而精思,循序而渐进,厚积而薄发。
浙公网安备 33010602011771号