GNU/Linux >> Belajar Linux >  >> Linux

Keluar Dari Temukan Jika -exec Gagal?

Apakah ada cara untuk menulis find sehingga rusak jika salah satu -exec operasi gagal pada file?

Misalnya. (javac mudah digunakan sebagai program yang dapat mengembalikan kode keluar 1 pada beberapa file dan tanpa alasan lain):

$ 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

Pada contoh di atas, meskipun exec pada file A.java gagal (dan mengembalikan kode keluar 1), find perintah melanjutkan dan mengkompilasi file B.java demikian juga. Apakah ada cara untuk keluar dari find atau haruskah saya menggunakan beberapa bentuk for bukan?

Versi pencarian saya:

$ find -version  | head -1
find (GNU findutils) 4.4.2

Jawaban yang Diterima:

Setidaknya dengan GNU find Anda dapat menggunakan:

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

Linux
  1. Memanipulasi {} Mengembalikan String Dari Find -exec?

  2. Temukan Proses Orphan Linux

  3. temukan dan salin file menggunakan Bash

  1. Bagaimana cara mendeteksi dan mengetahui suatu program mengalami kebuntuan?

  2. Bagaimana cara mengetahui namespace dari proses tertentu?

  3. Bagaimana menemukan versi Java mana di folder yang diinstal Java?

  1. Cara Mengetahui Daftar Semua Port Terbuka di Linux

  2. Versi Linux Apa yang Saya Jalankan? Inilah Cara Mengetahuinya

  3. Temukan -exec + Vs Temukan | Xargs:Yang Mana Yang Harus Dipilih?