find 查找,用于在目录中查找。
find path options tests actions
path 路径
options 选项
tests 测试
actions 动作
test选项很多:
-newer pattern 比pattern文件要新
-user pattern 文件属主是pattern
-name pattern 查找和type匹配的
-iname pattern 查找和type匹配的,会忽略大小写
-path pattern 按照文件路径匹配
-type c c是文件类型,按照文件类型匹配文件
-size +/- nk/c/w/k/b/M/G 匹配大于或小于n kb/.. 的文件
-perm XXX 基于文件权限的匹配
-a/-and pattern
-o/-or pattern
!/-not pattern
find dir –atime/mtime/ctime +/-n 根据时间累匹配,atime表示访问时间,mtime表示修改时间,ctime表示变化时间,+表示大于,-表示小于,单位是天。
find dir ! test pattern 列出所有没有按照-options pattern模式的项
find dir -mindepth n 指定最小的目录深度,至少从dir往下n级目录开始往下搜索,dir和n级之间的忽略。
find dir -maxdepth n 指定最大目录深度,不搜索n级之后的目录。
\(...\) 使用括号需要用引号来引用。
action选项:
-print 打印,换行符结尾,所有结果一行一个。
-print0 打印,空字符结尾,所有结果打印到一行。
-delete 删除
-exec command 执行一个命令
exec command {} \;
将前面的命令的结果通过管道和xargs作为后面命令的输入,类似于find命令的-exec选项。
格式 :command1 | xargs -options command2
Xargs -n number 设置每行显示的参数数量为number。
Xargs -d char 指定char为界定符,也就是将char换成空格。
Xargs -I {} 将命令参数用STDIN的参数替换掉。
Xargs -0 以/0为定界符,而不是空格。
find . -name “*.c” | xargs wc -l
find . -name “*.c” -exec wc -l{} \;
wc -l `find . -name “*.c”`