Tra i vari comandi visti finora, ce ne sono alcuni che permettono all'utente di scendere ricorsivamente nell'albero delle directory per fare qualche azione: gli esempi canonici sono ls -R e rm -R. Bene. find è il comando ricorsivo. Ogni volta che pensate ``Beh, devo fare questo e quest'altro su tutti questi tipi di file nella mia partizione'', dovreste pensare di usare find. In un certo senso il fatto che find trovi file è un effetto secondario: il suo vero compito è valutare.
La struttura di base del comando è la seguente:
find percorso [...] espressione [...]
Questo almeno vale per la versione GNU; altre versioni non permettono di specificare più di un percorso, ed inoltre è molto raro che serva una cosa del genere. La spiegazione della sintassi del comando è piuttosto semplice: dite da dove volete che cominci la ricerca (la parte percorso; con GNU si può omettere e per default verrà presa in considerazione la directory corrente .), e che tipo di ricerca volete fare (la parte espressione).
Il comportamento standard del comando è piuttosto complicato, quindi vale la pena notarlo. Supponiamo che nella vostra home directory ci sia una directory butta, che contiene il file pippo. Digitate find . -name pippo (che come potete indovinare ricerca un file di nome pippo), e ottenete ...niente altro che il prompt. Il problema sta nel fatto che find è per default silenzioso: rende 0 se la ricerca è stata completata (trovando qualcosa o meno) o un valore non-zero se ci sono stati dei problemi. Questo non accade con la versione che trovate su Linux, ma è comunque utile da ricordare.