найти команду exec option

1563
brianegge

Я пытаюсь использовать опцию + для поиска 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" 
2

2 ответа на вопрос

4
wRAR

Вам не нужно \; вместе с +

находить . -name "* .java" -exec grep "@author" {} + Dennis Williamson 14 лет назад 1
0
Ryan Thompson

Гораздо проще просто использовать find -print0 | xargs --null -I XXX do_something XXX. Пусть findк findИнгам и xargsделать, ээ, другие вещи.

Если вы используете `find -print0`, вам нужно` -0` для xargs. Doug Harris 14 лет назад 0
`-0` - это короткая версия` --null`. Ryan Thompson 14 лет назад 1

Похожие вопросы