GNU/Linux >> Linux の 問題 >  >> Linux

-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

承認された回答:

少なくともGNUのfindでは 使用できるもの:

find ... -exec ... -o -quit

Linux
  1. Linuxで開いているすべてのポートのリストを見つける方法

  2. 検索-exec+対検索| Xargs:どちらを選択しますか?

  3. Find To Workで-execオプションを取得しますか?

  1. Bash を使用してファイルを検索してコピーする

  2. Linuxで-execシェル関数を見つけますか?

  3. 特定のプロセスの名前空間を見つける方法は?

  1. JavaがインストールされたフォルダでJavaのバージョンを見つける方法は?

  2. ライブラリがパスにあるかどうかを調べる

  3. POSIX シグナルの発信元を見つける方法