Esempi su find
Beh sì, find ha proprio troppe opzioni, lo so, ma ci sono un sacco di modi predefiniti di usarlo che vale la pena
ricordare, dato che vengono usati molto spesso. Vediamone alcuni.
% find . -name foo\* -print
trova tutti i nomi di file che cominciano per foo . Se la stringa può trovarsi all'interno del nome, probabilmente
è più indicato scrivere "*foo*" invece di foo.
% find /usr/include -xtype f -exec grep foobar \
/dev/null {} \;
è un grep eseguito ricorsivamente a partire dalla directory /usr/include . In questo caso ci interessano sia il
file regolare che i link simbolici che puntano a file regolari, da cui il test -xtype . Molte volte è più
semplice evitare di specificarlo, specialmente se siamo piuttosto sicuri che non esistono file binary che contengono la stringa desiderata.
E perché il /dev/null nel comando? È un trucco per forzare grep a scrivere il nome del file
dove trova una corrispondenza. Il comando grep viene applicato a ciascun file in un'invocazione diversa, e quindi non pensa
che sia necessario di dare come output il nome del file; ma ora ci sono due file, cioè il file corrente e /dev/null !
Un'altra possibilità è fare una pipe del comando verso xargs e fargli fare il grep . L'ho appena
provato ed ho distrutto del tutto il mio filesystem (anche queste note che sto cercando di recuperare a mano :-( ).
% find / -atime +1 -fstype ext2 -name core \
-exec rm {} \;
è un tipico lavoro da crontab : cancella tutti i file core nei filesystem di tipo ext2 che non hanno
avuto accessi nelle ultime 24 ore. È possibile che qualcuno voglia usare il file core per fare un dump post mortem,
ma nessuno si può ricordare quello che stava facendo 24 ore prima...
% find /home -xdev -size +500k -ls > piggies
è utile sapere chi ha questi file che intasano il filesystem. Notate l'uso di -xdev : dato che ci interessa un solo
filesystem, non è necesario scendere negli altri montati sotto /home .
|