linux find 命令

find 命令的一般形式: find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]

其中[-H] [-L] [-P] [-D debugopts] [-Olevel]并不常用,path是find命令所查找的目录路径,默认是当前目录,可以指定多个搜索目录,expression可以分为:-options [-opertaions ...]

find命令还支持-a, -o, \( exp \) 来组合选项,-a, -o分别表示逻辑与和逻辑或,\( exp \)用于指定优先级。默认情况下,各个选项之间的bool值是逻辑与的关系。

-opertaions选项详解

  • -print,每个结果文件名单独一行输出到标准输出。默认操作。
  • -fprint outfile,与-print一样,只是将结果输出到outfile。

  • -exec cmd,find命令将对匹配的文件执行该参数所给出的shell命令。一般模式为:'cmd' {} \;{}表示匹配的结果,即文件名,{}之间不能有空格;\;是必须的,表示命令的结束;{}\;之间有空格。例如: find ./ -size 0 -exec rm {} \; 删除大小为0的文件。

  • -ok cmd,同-exec一样,但是先询问用户(在标准输入),假如应答不是以yY开头,将不执行command,返回假。

  • -ls,将搜索到的结果用ls -l命令形式的结果输出到标准输出。

  • -fls outfile,同-ls选项一样输出,只是结果输出到outfile。

  • -print0,在标准输出上输出整个文件名,并后加一个空字符。则允许其他程序能正确处理在find输出中包含新行的文件名。

  • -fprint0 outfile,与-print0一样,只是输出到outfile。

  • -printf format,格式化输出到标准输出。

继续阅读