我看到如下 find 命令,想知道它们之间的区别。
find . -exec COMMAND {} \;
find . -exec COMMAND {} \+
find . -exec COMMAND {} +
答案1
find exec 有两种语法。
find . -exec [cmd] {} \;
{} 是 find 找到的结果的占位符
;表示对于每个找到的结果,命令 cmd 都会使用找到的结果执行一次。
执行起来是这样的:cmd result1;命令结果2; ...;命令结果 N
find . -exec [cmd] {} \+
{} 是 find 找到的结果的占位符
+ 表示对于所有找到的结果,都会对所有找到的结果执行命令 cmd。
执行方式如下: cmd result1 result2 ... result N
什么时候我们应该使用 find exec ;除了 + 之外
-exec 运行的工具不接受多个文件作为参数
一次在如此多的文件上运行该工具可能会占用太多内存
我们希望尽快开始获得一些结果,尽管需要更多时间才能获得所有结果