Suchbefehl Option ausführen

1825
brianegge

Ich versuche, die Option + find exec anstelle von xargs zu verwenden. Ich scheine es jedoch nicht so zu schaffen, dass es funktioniert. Ich habe das Gefühl, dass mir hier offensichtlich etwas fehlt.

Beispiel:

find . -name "*.java" -exec grep "@author" {} + \; find: paths must precede expression Usage: find [-H] [-L] [-P] [path...] [expression] 

Auf der anderen Seite funktioniert das:

find . -name "*.java" -exec grep "@author" {} \; 

wie tut dies:

find . -name "*.java" | xargs grep "@author" 
2

2 Antworten auf die Frage

4
wRAR

Du brauchst nicht \; zusammen mit +

finden . -name "* .java" -exec grep "@author" {} + Dennis Williamson vor 14 Jahren 1
0
Ryan Thompson

Es ist viel einfacher, es einfach zu benutzen find -print0 | xargs --null -I XXX do_something XXX. Lass finddas findGanze und xargsmach das, äh, andere Sachen.

Wenn Sie `find -print0` verwenden, benötigen Sie` -0` für xargs. Doug Harris vor 14 Jahren 0
"-0" ist die Kurzversion von "--null". Ryan Thompson vor 14 Jahren 1