In Linux, il comando trova viene utilizzato per cercare file o cartelle dalla riga di comando. È un comando complesso e ha un gran numero di opzioni, argomenti e modalità.
L'uso più comune del comando trova consiste nel cercare i file utilizzando un'espressione regolare o il nome completo dei file da cercare.
[ Potrebbe piacerti anche:Come trovare file contenenti una stringa di testo specifica in Linux ]
Ad esempio, per cercare file con nomi che iniziano con 'file_' , possiamo eseguire:
$ find . -name 'file_*'
Come puoi vedere sopra, restituisce i percorsi completi dei file che vengono restituiti dalla ricerca. Qui, il '.'
implica la directory corrente . Trova cercherà il modello del nome del file nella directory corrente, in tutte le sottodirectory e così via fino al livello più profondo della struttura del file. Allo stesso modo, puoi avere qualsiasi altra directory al posto di '.'
.
Escludi una directory durante la ricerca di file
Ora, possono verificarsi scenari in cui un utente è sicuro che una o più cartelle specifiche non contengano il file da cercare. Pertanto, è una buona idea escludere tali cartelle dalla ricerca, in modo che il comando restituisca i risultati più velocemente.
Per escludere una directory dalla ricerca, usa il '-prune'
argomento:
$ find . -name './test' -prune -o -name 'file_*'
Analizziamo prima cosa sta succedendo qui.
La parte "-name './test' -prune"
implica:escludere la cartella 'test' dalla ricerca. Successivamente, '-o'
dice al comando:cos'altro dovrebbe essere fatto una volta che il comando esclude 'test' . Passiamo semplicemente il modello descritto nell'esempio precedente qui.
Questo modello verrà ora eseguito su tutte le cartelle, eccetto 'test' .
Ora puoi vedere che la ricerca esclude effettivamente la cartella 'test' . Tuttavia, il nome della cartella stessa viene stampato.
Escludi un nome di directory dall'output di ricerca
Per evitare ciò, aggiungi semplicemente '-print'
alla fine. Questa opzione escluderà il nome della directory dall'output.
$ find . -name './test' -prune -o -name 'file_*' -print
Il modello ora ha cercato i file nella directory corrente ed ha escluso il 'test' directory.
Conclusione
In questo articolo, abbiamo visto come escludere una directory durante la ricerca di file utilizzando il comando trova. Nota che gli esempi forniti in questo articolo stanno cercando file in base ai nomi di file ('-name')
. Ci sono molti altri modi per cercare i file anche all'interno del comando trova. Assicurati di fare riferimento alla pagina man del comando trova per esplorarli in profondità.
Grazie per la lettura e sentiti libero di lasciare commenti o domande nei commenti qui sotto.