find 命令的两种用法比较

我们经常会对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打头的文件,如果没有引号(单双都行)的话,*将扩展为当前目录下的所有文件名或目录名

留下评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据