¿Hay alguna forma de escribir un find
? para que se rompa si uno de los -exec
las operaciones fallan en un archivo?
P.ej. (javac
se usa convenientemente como un programa que puede devolver un código de salida de 1 en algunos archivos y por ningún otro 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
En el ejemplo anterior, aunque el exec
en el archivo A.java
falló (y devolvió un código de salida de 1), el find
el comando procedió y compiló el archivo B.java
así como. ¿Hay alguna forma de salir de find
? o debería usar alguna forma de for
en su lugar?
Mi versión de encontrar:
$ find -version | head -1
find (GNU findutils) 4.4.2
Respuesta aceptada:
Al menos con GNU find
puedes usar:
find ... -exec ... -o -quit