Come trovare file e cartelle in Linux utilizzando la riga di comando

  • Lori Kaufman

    @howtogeek

  • Aggiornato il 3 luglio 2017, 12:22 pm EDT

La maggior parte delle persone usa 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 utilizzare la riga di comando per trovare file in Linux, indipendentemente dal desktop manager che utilizzi.

Uso del comando Trova

Il comando “trova” ti consente per cercare i file di cui conosci i nomi approssimativi. La forma più semplice del comando cerca i file nella directory corrente e ricorsivamente nelle sue sottodirectory che corrispondono ai criteri di ricerca forniti. Puoi cercare i file per nome, proprietario, gruppo, tipo , autorizzazioni, data e altri criteri.

Digitando il seguente comando al prompt vengono elencati tutti i file trovati nella directory corrente.

find .

Il punto dopo “trova” indica la directory corrente.

Pubblicità

Per trovare file che corrispondono a uno schema specifico, utilizza -name discussione. Puoi utilizzare i metacaratteri del nome del file (come *), ma dovresti inserire un carattere di escape (\) davanti a ciascuno di essi o racchiudili tra virgolette.

Ad esempio, se vogliamo trovare tutti i file che iniziano con “pro” nella directory Documenti, utilizzeremo cd Documents/ per passare alla directory Documents, quindi digita il seguente comando:

find . -name pro\*

Vengono elencati tutti i file nella directory corrente che iniziano con “pro”.

NOTA: per impostazione predefinita, il comando find fa distinzione tra maiuscole e minuscole. Se desideri che la ricerca di una parola o frase non faccia distinzione tra maiuscole e minuscole, utilizza l’opzione -iname con il comando find. È la versione senza distinzione tra maiuscole e minuscole del comando -name.

Pubblicità

If find non trova alcun file corrispondente ai tuoi criteri, non produce output.

Il comando find ha molte opzioni disponibili per raffinare la ricerca. Per ulteriori informazioni sul comando find, esegui man find in una finestra di Terminale e premi Invio.

Uso del comando Locate

Il comando Locate è più veloce del comando find perché utilizza un database costruito in precedenza, mentre il comando find cerca nel sistema reale, attraverso tutte le directory ei file effettivi. Il comando locate restituisce un elenco di tutti i nomi di percorso contenenti il gruppo di caratteri specificato.

Il database viene aggiornato periodicamente da cron, ma puoi anche aggiornarlo da solo in qualsiasi momento in modo da poter ottenere fino a risultati del minuto. Per fare ciò, digita il seguente comando al prompt:

sudo updatedb

Inserisci la tua password quando richiesto.

Pubblicità

La forma base del comando locate trova tutti i file nel file system, a partire dalla radice, che contengono tutti o parte dei criteri di ricerca.

locate mydata

Ad esempio, il comando precedente ha trovato due file contenenti “mydata” e un file contenente “data”.

Se desideri trovare tutti i file o le directory che contengono esattamente e solo i tuoi criteri di ricerca, utilizza l’opzione -b con il comando Locate, come segue.

locate -b ‘\mydata’

La barra rovesciata nel comando precedente è un globbing carattere, che fornisce un modo per espandere i caratteri jolly in un nome file non specifico in una serie di nomi file specifici. Un carattere jolly è un simbolo che può essere sostituito da uno o più caratteri quando l’espressione viene valutata. I simboli jolly più comuni sono il punto interrogativo (?), che sta per un singolo carattere e l’asterisco (*), che sta per per una stringa di caratteri contigua. Nell’esempio precedente, la barra rovesciata disabilita la sostituzione implicita di “mydata” con “* mydata *” in modo da ottenere solo risultati contenenti “mydata”.

Pubblicità

Il mlocate Il comando è una nuova implementazione di Locate. Indicizza l’intero file system, ma i risultati della ricerca includono solo i file a cui ha accesso l’utente corrente. Quando aggiorni il database mlocate, mantiene le informazioni di timestamp nel database. Ciò consente a mlocate di sapere se il contenuto di una directory è cambiato senza leggere di nuovo il contenuto e rende gli aggiornamenti al database più veloci e meno impegnativi sul tuo disco rigido.

Quando installi mlocate, il file binario / usr / bin / locate cambia in punta 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: 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, potresti voler creare il database manualmente digitando il seguente comando al prompt:

sudo /etc/cron.daily/mlocate
Pubblicità

Il comando mlocate lo farà non funziona finché il database non viene creato manualmente o quando lo script viene eseguito da cron.

Per ulteriori informazioni sul comando locate o mlocate, digita man locate o man mlocate in una finestra di Terminale e premi Invio. La stessa schermata di aiuto viene visualizzata per entrambi i comandi.

Uso del comando Which

Il comando “which” restituisce il percorso assoluto dell’eseguibile che viene chiamato quando viene emesso un comando. utile per trovare la posizione di un eseguibile per creare un collegamento al programma sul desktop, su un pannello o in un’altra posizione nel desktop manager. Ad esempio, digitando il comando which firefox viene visualizzato i risultati mostrati nell’immagine sottostante.

Per impostazione predefinita, il comando which mostra solo il primo eseguibile corrispondente. Per visualizzare tutti gli eseguibili corrispondenti, utilizza l’opzione -a con il comando:

which -a firefox
pubblicità

Puoi cercare più eseguibili utilizzando contemporaneamente, come mostrato nell’immagine seguente. Solo i percorsi agli eseguibili trovati vengono visualizzati. Nell’esempio seguente, è stato trovato solo l’eseguibile “ps”.

NOTA: il comando which cerca solo la variabile PATH dell’utente corrente. Se cerchi un eseguibile disponibile solo per l’utente root come utente normale, non verrà visualizzato alcun risultato.

Per ulteriori informazioni sul comando, digita “man which” (senza virgolette) in il prompt dei comandi in una finestra di Terminale e premi Invio.

Uso del comando Whereis

Il comando whereis viene utilizzato per scoprire dove sono i file binari, sorgente e pagina man di un comando si trovano. Ad esempio, digitando whereis firefox al prompt vengono visualizzati i risultati come mostrato nell’immagine seguente.

Pubblicità

Se si desidera solo il percorso dell’eseguibile da visualizzare, e non i percorsi della sorgente e delle pagine man (ual), utilizza l’opzione -b. Ad esempio, il comando whereis -b firefox mostrerà solo /usr/bin/firefox come risultato. Ciò è utile perché molto probabilmente cercherai il file eseguibile di un programma più spesso di quanto faresti per le pagine sorgente e man per quel programma e cerca anche solo i file sorgente (-s) o solo le pagine man (-m).

Per ulteriori informazioni sul comando whereis, digita man whereis in una finestra di Terminale e premi Invio.

Capire la differenza tra il comando Whereis e il comando Which

Il comando whereis mostra la posizione delle pagine binario, sorgente e man di 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 per i file binari, sorgente e man mentre il comando which cerca nelle directory elencate nella variabile d’ambiente PATH dell’utente corrente. Per il comando whereis, l’elenco delle directory specifiche può essere trovato nella sezione FILE delle pagine man del comando.

Pubblicità

Quando si tratta di risultati visualizzati per impostazione predefinita, il Il comando whereis mostra tutto ciò che trova, mentre il comando which mostra solo il primo eseguibile che trova. Puoi cambiarlo utilizzando l’opzione -a, discussa in precedenza, per il comando which.

Poiché il comando whereis utilizza solo percorsi codificati nel comando, tu potrebbe 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 which con l’opzione -a per trova tutte le occorrenze del comando in tutto il sistema.

Lori Kaufman
Lori Kaufman è un esperto di tecnologia con 25 anni di esperienza. È stata una scrittrice tecnica senior, ha lavorato come programmatrice e ha anche gestito la sua attività multi-location. Leggi la biografia completa “

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *