find /path/ -exec 命令 '{}' 中的 + 做什么?

find /path/ -exec 命令 '{}' 中的 + 做什么?

+里面是做什么的find /path/ -exec command '{}' +?相对于find /path/ -exec command '{}' \;

答案1

“+”使所有找到的文件成为一个大命令行,以最大限度地减少要运行的命令数量。

假设 find 命令找到了四个文件。

find . -type f -exec command '{}' \;

会产生

command file1
command file2
command file3
command file4 

另一方面

find . -type f -exec command '{}' \+

产生

command file1 file2 file3 file4

答案2

从手册页:

-执行命令{} +

-exec 操作的此变体对所选文件运行指定的命令,但命令行是通过在末尾附加每个所选文件名来构建的;该命令的调用总数将远小于匹配的文件数。命令行的构建方式与 xargs 构建其命令行的方式大致相同。命令中只允许有一个“{}”实例。该命令在起始目录中执行。

相关内容