Você não precisa de \; junto com +
Estou tentando usar a opção + de encontrar exec em vez de xargs. No entanto, parece que não consigo fazer funcionar. Eu sinto que devo estar perdendo algo óbvio aqui.
Exemplo:
find . -name "*.java" -exec grep "@author" {} + \;
find: paths must precede expression
Usage: find [-H] [-L] [-P] [path...] [expression]
Por outro lado, isso funciona:
find . -name "*.java" -exec grep "@author" {} \;
assim:
find . -name "*.java" | xargs grep "@author"
É muito mais fácil usar apenas find -print0 | xargs --null -I XXX do_something XXX
. Deixe find
para o find
ing e xargs
para o, er, outras coisas.
Tags command-line bash find unix