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