-execが失敗した場合は検索を終了

-execが失敗した場合は検索を終了

特定のファイルに対する操作が失敗した場合に中断する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

おすすめ記事