
Molte persone usano un file manager grafico per trovare file in Linux, come Nautilus in Gnome, Dolphin in KDE e Thunar in Xfce. Tuttavia, ci sono diversi modi per usare la riga di comando per trovare file in Linux, indipendentemente dal desktop manager che usi.

Utilizzando il comando Trova
Il comando “trova” consente di cercare file per i quali si conoscono i nomi di file approssimativi. La forma più semplice del comando cerca i file nella directory corrente e ricorsivamente attraverso le sue sottodirectory che soddisfano i criteri di ricerca forniti. È possibile cercare file per nome, proprietario, gruppo, tipo, autorizzazioni, data e altri criteri.
Digitando il seguente comando al prompt sono elencati tutti i file trovati nella directory corrente.
find .
Il punto dopo “trova” indica la directory corrente.

Per trovare file che corrispondono a un modello specifico, utilizzare il -name discussione. È possibile utilizzare i metacaratteri dei nomi di file (come * ), ma dovresti inserire un carattere di escape ( ) davanti a ciascuno di essi o racchiuderli tra virgolette.
Ad esempio, se vogliamo trovare tutti i file che iniziano con “pro” nella directory Documents, utilizzeremo il file cd Documents/ comando per passare alla directory Documenti, quindi digitare il comando seguente:
find . -name pro*
Sono elencati tutti i file nella directory corrente che iniziano con “pro”.
NOTA: il comando find ha come impostazione predefinita la distinzione tra maiuscole e minuscole. Se si desidera che la ricerca di una parola o frase non faccia distinzione tra maiuscole e minuscole, utilizzare il tasto -iname opzione con il comando find. È la versione senza distinzione tra maiuscole e minuscole di -name comando.

Se find non trova alcun file corrispondente ai tuoi criteri, non produce output.
Il comando find ha molte opzioni disponibili per affinare la ricerca. Per ulteriori informazioni sul comando find, eseguire man find in una finestra Terminale e premere Invio.
Utilizzando il comando Trova
Il comando Locate è più veloce del comando find perché utilizza un database creato in precedenza, mentre il comando find cerca nel sistema reale, attraverso tutte le directory e i file effettivi. Il comando Locate restituisce un elenco di tutti i nomi di percorso contenente il gruppo di caratteri specificato.
Il database viene aggiornato periodicamente da cron, ma è anche possibile aggiornarlo da soli in qualsiasi momento in modo da ottenere risultati aggiornati al minuto. Per fare ciò, digitare il seguente comando al prompt:
sudo updatedb
Inserisci la tua password quando richiesto.

La forma base del comando Locate trova tutti i file sul file system, a partire dalla radice, che contengono tutti o parte dei criteri di ricerca.
locate mydata
Ad esempio, il comando sopra ha trovato due file contenenti “mydata” e un file contenente “dati”.

Se si desidera trovare tutti i file o le directory che contengono esattamente e solo i criteri di ricerca, utilizzare il -b opzione con il comando Locate, come segue.
locate -b ‘mydata’
La barra rovesciata nel comando precedente è un carattere globbing, che fornisce un modo per espandere i caratteri jolly in un nome file non specifico in un set di nomi file specifici. Un carattere jolly è un simbolo che può essere sostituito da uno o più caratteri quando viene valutata l'espressione. I simboli jolly più comuni sono il punto interrogativo ( ? ), che rappresenta un singolo carattere e l'asterisco ( * ), che rappresenta una stringa contigua di caratteri. Nell'esempio sopra, la barra rovesciata disabilita la sostituzione implicita di “mydata” con “* mydata *”, quindi si ottengono solo risultati contenenti “mydata”.

Il comando mlocate è una nuova implementazione di Locate. Indicizza l'intero file system, ma i risultati della ricerca includono solo i file a cui l'utente corrente ha accesso. Quando si aggiorna il database mlocate, mantiene le informazioni di data e ora nel database. Ciò consente a mlocate di sapere se i contenuti di una directory sono cambiati senza leggere di nuovo i contenuti e rende gli aggiornamenti del database più veloci e meno impegnativi sul disco rigido.
Quando si installa mlocate, il file binario / usr / bin / Locate cambia per puntare a mlocate. Per installare mlocate, se non è già incluso nella tua distribuzione Linux, digita il seguente comando al prompt.
sudo apt-get install mlocate
NOTA: Ti mostreremo un comando più avanti in questo articolo che ti consente di determinare dove si trova l'eseguibile per un comando, se esiste.

Il comando mlocate non utilizza lo stesso file di database del comando Locate standard. Pertanto, è possibile creare manualmente il database digitando il seguente comando al prompt:
sudo /etc/cron.daily/mlocate
Il comando mlocate non funzionerà fino a quando il database non viene creato manualmente o quando lo script viene eseguito da cron.

Per ulteriori informazioni sul comando Locate o mlocate, digitare man locate o man mlocate in una finestra Terminale e premere Invio. La stessa schermata di aiuto viene visualizzata per entrambi i comandi.
Usando il comando Quale
Il comando “which” restituisce il percorso assoluto dell'eseguibile che viene chiamato quando viene emesso un comando. Ciò è utile per trovare la posizione di un eseguibile per la creazione di un collegamento al programma sul desktop, su un pannello o in un'altra posizione in Desktop Manager. Ad esempio, digitando il comando which firefox visualizza i risultati mostrati nell'immagine qui sotto.

Per impostazione predefinita, il comando which visualizza solo il primo eseguibile corrispondente. Per visualizzare tutti gli eseguibili corrispondenti, utilizzare il -a opzione con il comando:
which -a firefox
Puoi cercare più eseguibili usando contemporaneamente, come mostrato nella seguente immagine. Vengono visualizzati solo i percorsi degli eseguibili trovati. Nell'esempio seguente, è stato trovato solo l'eseguibile “ps”.

NOTA: il comando which cerca solo la variabile PATH dell'utente corrente. Se si cerca un eseguibile disponibile solo per l'utente root come utente normale, non verranno visualizzati risultati.
Per ulteriori informazioni su quale comando, digitare “man what” (senza virgolette) al prompt dei comandi in una finestra Terminale e premere Invio.
Utilizzo del comando Whereis
Il comando whereis viene utilizzato per scoprire dove si trovano i file binario, sorgente e della pagina man per un comando. Ad esempio, digitando whereis firefox al prompt visualizza i risultati come mostrato nella seguente immagine.

Se si desidera visualizzare solo il percorso dell'eseguibile e non i percorsi delle pagine di origine e man (ual), utilizzare il -b opzione. Ad esempio, il comando whereis -b firefox verrà visualizzato solo /usr/bin/firefox come risultato. Questo è utile perché molto probabilmente cercherai il file eseguibile di un programma più spesso di quanto cercherai le pagine di origine e man per quel programma. Puoi anche cercare solo i file di origine ( -s ) o solo per le pagine man ( -m ).
Per ulteriori informazioni sul comando whereis, digitare man whereis in una finestra Terminale e premere Invio.
Comprensione della differenza tra il comando Whereis e il comando Which
Il comando whereis mostra la posizione delle pagine binarie, sorgente e man per un comando, mentre il comando which mostra solo la posizione del binario per il comando.
Il comando whereis cerca in un elenco di directory specifiche i file binari, source e man, mentre il comando which cerca le directory elencate nella variabile d'ambiente PATH dell'utente corrente. Per il comando whereis, l'elenco di directory specifiche è disponibile nella sezione FILES delle pagine man per il comando.
Quando si tratta di risultati visualizzati per impostazione predefinita, il comando whereis visualizza tutto ciò che trova, mentre il comando which mostra solo il primo eseguibile che trova. Puoi cambiarlo usando il -a opzione, discussa in precedenza, per quale comando.
Poiché il comando whereis utilizza solo percorsi codificati nel comando, potresti non trovare sempre quello che stai cercando. Se stai cercando un programma che pensi possa essere installato in una directory non elencata nelle pagine man per il comando whereis, potresti voler usare il comando who con il -a opzione per trovare tutte le occorrenze del comando in tutto il sistema.
