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\* -printtrova 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.