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

From RVM Wiki
Jump to navigation Jump to search
No edit summary
mNo edit summary
 
(One intermediate revision by the same user not shown)
Line 6: Line 6:


E' necessario usare come ultimo argomento ';'
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):
Esempio: cancellare tutti i files nella directory e sottodirectory, senza cancellare le sottodirectory (pulire la queue di postfix):
Line 15: Line 17:
  find . -name "rc.conf" -exec chmod o+r '{}' \;
  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 ==
== Riferimenti ==
 
* man find
*[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