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
承認された回答:
少なくともGNUのfindでは 使用できるもの:
find ... -exec ... -o -quit