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