find comando exec opção

2

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"
    
por brianegge 11.09.2009 / 08:54

2 respostas

4

Você não precisa de \; junto com +

    
por 11.09.2009 / 09:00
0

É 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.

    
por 11.09.2009 / 10:16