我正在尝试使用+find exec 选项而不是 xargs。但是,我似乎无法让它工作。我觉得我肯定在这里忽略了一些明显的东西。
例子:
find . -name "*.java" -exec grep "@author" {} + \;
find: paths must precede expression
Usage: find [-H] [-L] [-P] [path...] [expression]
另一方面,这是有效的:
find . -name "*.java" -exec grep "@author" {} \;
就像这样:
find . -name "*.java" | xargs grep "@author"
答案1
你不需要 \; 和 +
答案2
只需使用 就容易多了find -print0 | xargs --null -I XXX do_something XXX
。让它find
执行find
并xargs
执行其他操作。