我们经常会对find出来的文件做一些处理,这时有三种方法可以选择:
1. 直接把find的结果作为命令的参数
cmd ·find ….·
这样做看起来很简单,但是最大的缺点就是经常会出现参数太长的错误,因为find出来的文件太多了,所以我们可以参考第二种方法
2. 使用-exec 参数
find …. -exec cmd {} \;
注意:} 和 \ 之间是至少有一个空格的; 且‘;’一定是要用\做转义的
这样做find就会把find到的文件一个一个地传给cmd来执行,如果cmd只能一个文件一个文嘉地处理,这样做是很好的,但是一般来讲处理文件的命令都不是这么单纯的,都可以一次处理多个文件,而我们却非要一个一个地提供参数就显得效率低下了,下面看第三种写法
3. 使用xargs命令
find … | xargs cmd
这样xargs会在让cmd不出现参数太长的前提下,一次提供给cmd更多的参数,这就比用exec效率高了
[color=#FF0000]注意:用find命令时,正则匹配一定要用引号,比如:find / -name ‘a*’ 查找a打头的文件,如果没有引号(单双都行)的话,*将扩展为当前目录下的所有文件名或目录名