Il comando find ricerca i file che soddisfano le condizioni specificate dall'utente a partire dalla directory indicata. Ad esempio, è possibile cercare i file il cui nome contenga una determinata stringa o che siano stati modificati in un arco di tempo stabilito.
A differenza di molti comandi, le opzioni di find sono formate da più caratteri, e il nome della directory di partenza deve precedere le opzioni sulla riga di comando:
$ find directory opzioni |
dove directory è il nome della directory di partenza e opzioni sono le opzioni del comando find.
Ogni opzione definisce un criterio per la selezione del file. Il programma seleziona solo i file che soddisfano tutti i criteri specificati. Aumentando il numero delle opzioni si restringe perciò il campo dei file corrispondenti. L'opzione -print indica che il risultato della ricerca deve essere visualizzato sullo schermo. (Come verrà descritto più avanti, il comando find può essere usato anche per l'esecuzione di comandi; in questo caso può essere superfluo visualizzare i file selezionati.)
L'opzione -name nomefile ordina a find di selezionare i file che corrispondono al nomefile specificato. In questo caso nomefile rappresenta l'ultimo componente del percorso del file. Ad esempio, l'ultimo componente del percorso /usr/lib/calendario è calendario. Questa parte del percorso viene spesso definita nome base del file.
Ad esempio, per ricercare tutti i file della directory corrente e delle relative sottodirectory il cui nome termina in s, digitare quanto segue:
$ find . -name '*s' -print ./alias ./alias/files ./alias/files/gks ./src/gks $ |
Qui di seguito sono descritte alcune delle opzioni più comuni:
-name nomefile
Seleziona i file il cui ultimo componente corrisponde a nomefile. Per indicare un modello di ricerca anziché il nome esatto del file, inserire nomefile fra virgolette singole.
Seleziona i file di proprietà di id_utente. id_utente può essere un nome di login o il numero dell'ID utente.
Seleziona i file di proprietà del gruppo.
Seleziona i file che sono stati modificati negli ultimi n giorni.
Seleziona i file modificati più recentemente del file_di_riferimento.
È anche possibile specificare un ordine di precedenza, inserendo le opzioni tra parentesi precedute dal carattere di escape "\" (ad esempio, \(opzioni\) ). All'interno delle parentesi è possibile inserire tra le opzioni il flag -o, per indicare a find di selezionare i file che corrispondono a ogni singolo criterio specificato anziché solo i file che soddisfano entrambi i criteri:
$ find . \( -name AAA -o -name BBB \) -print ./AAA ./BBB |
Si può anche invertire il senso di un'opzione facendola precedere da un punto esclamativo (a sua volta preceduto da un carattere di escape). In questo modo find seleziona i file che non corrispondono all'opzione specificata:
$ find . \!-name BBB -print ./AAA |
È inoltre possibile utilizzare find per eseguire sui file selezionati una determinata operazione, usando l'opzione
-exec comando '{}' \;
Questa opzione termina con un punto e virgola preceduto dal carattere di escape (\;). Le parentesi graffe fra virgolette vengono sostituite dai nomi dei file selezionati da find.
Ad esempio, si può usare find per cancellare automaticamente i file temporanei. Se si utilizza un criterio coerente per denominare i file temporanei, si potrà usare find per cercarli e cancellarli ovunque si trovino. Ad esempio, se i file temporanei vengono chiamati prova o esempio, il comando seguente permetterà di ricercarli e cancellarli automaticamente:
$ find . \( -name prova -o -name esempio \) -exec rm '{}' \; |
Per maggiori informazioni su find(1), vedere man Pages(1): User Commands.