+
里面是做什么的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 构建其命令行的方式大致相同。命令中只允许有一个“{}”实例。该命令在起始目录中执行。