Usare find con l'opzione -exec: Difference between revisions

From RVM Wiki
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
 
Line 31: Line 31:
*[http://www.grymoire.com/Unix/Find.html#uh-13 Grymoire Find Tutorial: Using Find to Execute Commands]
*[http://www.grymoire.com/Unix/Find.html#uh-13 Grymoire Find Tutorial: Using Find to Execute Commands]
*[http://www.athabascau.ca/html/depts/compserv/webunit/HOWTO/find.htm Some examples of using UNIX find command.]
*[http://www.athabascau.ca/html/depts/compserv/webunit/HOWTO/find.htm Some examples of using UNIX find command.]
*[https://stackoverflow.com/questions/5119946/find-exec-with-multiple-commands bash - find -exec with multiple commands - Stack Overflow]

Latest revision as of 09:51, 5 August 2022

Per eseguire direttamente un'operazione sui file trovati da find, si può usare l'opzione -exec, da usare nel formato seguente:

find opzioni -exec comando {} ';'

Il parametro {} viene sostituito con il nome del file trovato

E' necessario usare come ultimo argomento ';'

-exec esegue il comando indicato, utilizzando {} come nome dell'elemento trovato da find, fino a che trova un ;, che bisogna escapare dalla shell con \ o con le virgolette

Esempio: cancellare tutti i files nella directory e sottodirectory, senza cancellare le sottodirectory (pulire la queue di postfix):

find . -type f -exec echo rm  {} ';'

Oppure:

find . -name "rc.conf" -exec chmod o+r '{}' \;


  • Per eseguire più comandi, ripetere il -exec:
find . -type d \
     -print \
     -exec touch '{}/00test00' \; \
     -exec sleep 5 \; \
      -exec /bin/rm -f {}/00

test00 \;

Riferimenti