我明白用+而不是\;在带有-exec的find命令中,可以加快速度,因为\; -exec的目标对于find命令的每个结果执行一次,而使用+,-exec的目标“根据需要”执行。
此代码按预期工作并处理所有子目录:
find "${directory}" -iname "*.jpg" -type d -prune -exec bash -c 'myscript "{}"' \;
但是这段代码不起作用:
find "${directory}" -iname "*.jpg" -type d -prune -exec bash -c 'myscript "$@"' bash {} +
它只处理一个目录而不是所有目录。
我显然在调用函数时忽略了使用+的正确语法。