Usare find con l'opzione -exec: Difference between revisions
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 \;