Gibt es eine Möglichkeit, einen find
zu schreiben so dass es bricht wenn man die -exec
Operationen schlagen bei einer Datei fehl?
Z.B. (javac
wird praktischerweise als ein Programm verwendet, das bei einigen Dateien einen Exit-Code von 1 zurückgeben kann, und zwar aus keinem anderen Grund):
$ echo "public classXX A{}" >> A.java
$ echo "public class B{}" >> B.java
$ find . -iname \*.java -exec javac {} \;
./A.java:1: error: class, interface, or enum expected
public classXX A{}
^
1 error
Obwohl im obigen Beispiel die Datei exec
auf die Datei A.java
fehlgeschlagen ist (und einen Exit-Code von 1 zurückgegeben hat), find
Befehl fortgesetzt und kompilierte Datei B.java
auch. Gibt es eine Möglichkeit, aus find
auszubrechen oder sollte ich irgendeine Form von for
verwenden stattdessen?
Meine Version von find:
$ find -version | head -1
find (GNU findutils) 4.4.2
Akzeptierte Antwort:
Zumindest mit GNU find
Sie können verwenden:
find ... -exec ... -o -quit