C'è un modo per scrivere un find
in modo che si interrompa se uno dei -exec
operazioni non riescono su un file?
Per esempio. (javac
è convenientemente usato come programma che può restituire un codice di uscita 1 su alcuni file e per nessun altro motivo):
$ 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
Nell'esempio sopra, sebbene exec
nel file A.java
fallito (e restituito un codice di uscita di 1), il find
comando proseguito e file compilato B.java
anche. C'è un modo per uscire da find
o dovrei usare una qualche forma di for
invece?
La mia versione di trova:
$ find -version | head -1
find (GNU findutils) 4.4.2
Risposta accettata:
Almeno con GNU find
puoi usare:
find ... -exec ... -o -quit