Il comando trova di Linux è utile quando si cercano file direttamente dalla riga di comando. Al comando trova vengono forniti criteri di ricerca come autorizzazioni, proprietà, modifica, dimensione, ora e data, tra gli altri, per individuare il file o la directory in questione.
Il comando find è disponibile in tutte le distribuzioni Linux per impostazione predefinita, quindi non è necessario installare pacchetti speciali per usarlo. A causa del suo significato, il comando find è un comando essenziale da imparare se vuoi saperne di più sulle navigazioni della riga di comando su qualsiasi distribuzione Linux.
Evidenzieremo alcuni degli esempi di comando trova e spiegheremo le varie opzioni che puoi utilizzare.
Sintassi
$ find location comparison-criteria search term
Elencare i file nella directory corrente
Per elencare tutti i file in una directory inclusi i file all'interno delle cartelle, esegui il comando seguente.
$ find .
Risultato di esempio
Ricerca di file all'interno di una directory specifica
Se vuoi cercare tutti i file in una determinata directory, usa il comando trova come segue
$ find directory_name
Ad esempio, per cercare tutti i file in /boot eseguire il comando
$ find /boot
Risultato di esempio
Ricerca di file utilizzando il nome file all'interno di una directory specificata
Se vuoi specificare i criteri di ricerca utilizzando il nome del file in una directory, la sintassi sarà la seguente
$ find directory_name -name "file_name"
Ad esempio, per cercare i file Apache2 nella directory /etc esegui
$ find /etc -name "apache2"
Risultato
Trova ricorsivamente tutti i file con un'estensione di file specificata
Se vuoi cercare file particolari con un'estensione specifica, in una determinata directory, la sintassi sarà la seguente
$ find directory_name -name "*.extension"
Ad esempio, per cercare tutti i file di configurazione (.conf) nella directory /etc, eseguire
$ find /etc -name "*.conf"
Risultato di esempio
Limitazione della profondità di ricerca
Puoi decidere di limitare la profondità della ricerca di file nelle directory. Ad esempio, se vuoi limitare la ricerca dei file al primo livello della directory, la sintassi sarà
$ find directory_name -maxdepth 1 -name "*.conf"
Quindi, se vuoi limitare la ricerca dei file alla directory di primo livello in /etc per i file con .conf
estensione esegui:
$ find /etc -maxdepth 1 -name "*.conf"
Risultato di esempio
Come visto nell'output sopra, la ricerca dei file è limitata a /etc livello di directory. Se desideri eseguire una ricerca più intensa e approfondire le altre directory all'interno di /etc directory, aumenta la profondità massima valore.
Ad esempio, per cercare file con .conf estensione fino alla 3a directory eseguita
$ find /etc -maxdepth 3 -name "*.conf"
Risultato di esempio
Come si vede dall'output sopra, la ricerca sale alla 2a e 3a directory.
Inverti i risultati di ricerca
Puoi anche cercare i file che non soddisfano determinati criteri con il comando trova. Questa modalità è utile quando si desidera eliminare i file conosciuti dal modello di ricerca.
Per fare ciò, usa il -not -name
attributo come mostrato
$ find /etc -maxdepth 1 -not -name "*.conf"
Risultato di esempio
L'output sopra stampa tutti i file che non hanno il .conf estensione del file.
Utilizzo di trova con l'operatore OR
Puoi scegliere di combinare i risultati della ricerca con trova utilizzando l'operatore OR simboleggiato da -o
flag mostrato nell'esempio seguente
$ find /etc -maxdepth 3 -name "cron" -o -name "ssh"
Risultato di esempio
Il comando precedente cerca i file con il nome ssh OPPURE cron nella
Ricerca solo di file o solo directory
Se vuoi cercare solo i file, usa il - type f
attributo come mostrato nell'esempio seguente
$ find /etc -type f -name "ssh"
Risultato di esempio
Se vuoi cercare solo le directory, usa il - type d
attributo come mostrato nell'esempio seguente.
$ find /etc -type d -name "ssh"
Risultato di esempio
Ricerca di file di proprietà di un particolare utente
Per cercare i file di proprietà di un particolare utente in una directory specifica, usa la sintassi:
$ find /path -user username
Ad esempio, per trovare i file di proprietà dell'utente james in /home
directory esegui il comando seguente
$ find /home -user james
Risultato di esempio
Ricerca di file con determinati permessi di file
Per cercare file con autorizzazioni file specifiche, utilizza la sintassi seguente
$ find /directory_name -type f -perm value
Ad esempio, per cercare file con autorizzazioni 755 in /etc directory, esegui:
$ find /etc -type f -perm 755
Risultato di esempio
Ricerca di file con determinate dimensioni di file o un intervallo di file
Il comando trova Linux offre anche agli utenti la possibilità di cercare i file in base alle loro dimensioni.
Cerca file di dimensione N
Ad esempio, per cercare file da 10kb esegui:
$ find /etc -type f -size 10k
Risultato di esempio
Per cercare file di dimensioni superiori a 10kb esegui
find /etc -type f -size +10k
Risultato di esempio
Per cercare file di dimensioni inferiori a 10kb esegui
find /etc -type f -size -10k
Risultato di esempio
Riepilogo
Questa è stata una rapida panoramica degli esempi dei comandi di ricerca di Linux. Come già mostrato, la ricerca di file e directory sulla riga di comando è molto semplice. Sapere come funziona il comando è uno strumento essenziale per tutti gli amministratori di sistema.
Sentiti libero di provare gli esempi di comando di ricerca di cui sopra e facci sapere come è andata.