GNU/Linux >> Linux Esercitazione >  >> Linux

Rompere la ricerca se un -exec fallisce?

C'è un modo per scrivere un find in modo che si interrompa se uno dei -exec operazioni non riescono su un file?

Per esempio. (javac è convenientemente usato come programma che può restituire un codice di uscita 1 su alcuni file e per nessun altro motivo):

$ 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

Nell'esempio sopra, sebbene exec nel file A.java fallito (e restituito un codice di uscita di 1), il find comando proseguito e file compilato B.java anche. C'è un modo per uscire da find o dovrei usare una qualche forma di for invece?

La mia versione di trova:

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

Risposta accettata:

Almeno con GNU find puoi usare:

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

Linux
  1. Ottenere l'opzione -exec in Trova per funzionare?

  2. Manipola {} Restituisce la stringa da Find -exec?

  3. trova e copia il file usando Bash

  4. trovare -exec una funzione di shell in Linux?

  5. Linux scopre l'ID core hyper-thread

Come scoprire l'elenco di tutte le porte aperte in Linux

Quale versione di Linux sto eseguendo? Ecco come scoprirlo

Come scoprire la versione del kernel Linux in esecuzione sul tuo PC

Come rilevare e scoprire che un programma è in stallo?

Come faccio a sapere se la mia scheda wireless supporta i 5 GHz?

Qual è la sintassi corretta di find -exec