特定のファイルに対する操作が失敗した場合に中断するfind
ようにファイルを作成する方法はありますか?-exec
たとえば、javac
特定のファイルで他の理由なく終了コード1を返すことができるプログラムとして便利です。
$ 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
上記の例では、exec
ファイルがA.java
失敗して終了コード1を返しても、find
コマンドは続行してファイルをコンパイルしますB.java
。突破する方法はありますか?または、代わりにfind
どのフォームを使用する必要がありますか?for
私が見つけたバージョン:
$ find -version | head -1
find (GNU findutils) 4.4.2
ベストアンサー1
私の考えでは...
find ... -exec sh -c 'cmd "$0" || kill $PPID' \{\} \;
...どの問題も解決する必要がありますfind
。