首先声明一点,我们讨论的是gnu的findutils中的find
find的基本语法:
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]
其中H,L,P都是关于符号链接的,一般用不到,D是调试用的,有兴趣的可以研究,O是优化选项,一般也不会用到。
path即搜索开始的路径,...表示可以指定多个,会去遍历子目录
expression = [test] [action] [operator]
expression会对每个遍历到的file求值.
按照这个语法大家只用对照man find就可以写出自己的脚本了。action缺省为-print
下面举常用的例子:
find . -name "*.sh" -type f 当前目录下的所有以sh结尾的文件
find . -name ".svn" -prune -o -print 当前目录下的除.svn文件夹之外的所有文件或文件夹
网友评论