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

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

    La maggior parte delle persone usa un gestore di file grafico per trovare file in Linux, come Nautilus in Gnome, Dolphin in KDE e Thunar in Xfce. Tuttavia, esistono diversi modi per utilizzare la riga di comando per trovare i file in Linux, indipendentemente dal gestore desktop che si utilizza.

    Utilizzando il comando Trova

    Il comando "trova" ti permette di cercare file per i quali conosci i nomi dei file approssimativi. La forma più semplice del comando cerca i file nella directory corrente e ricorsivamente attraverso le sue sottodirectory che corrispondono ai criteri di ricerca forniti. È possibile 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.

    trova .

    Il punto dopo "trova" indica la directory corrente.

    Per trovare i file che corrispondono a un modello specifico, utilizzare il -nome discussione. È possibile utilizzare i metacaratteri del nome file (come ad esempio * ), ma dovresti inserire un carattere di escape ( \ ) di fronte a ciascuno di essi o li racchiudono tra virgolette.

    Ad esempio, se vogliamo trovare tutti i file che iniziano con "pro" nella directory Documenti, useremo il cd Documenti / comando per passare alla directory Documenti, quindi digitare il seguente comando:

    trova . -name pro \ *

    Tutti i file nella directory corrente che iniziano con "pro" sono elencati.

    NOTA: il comando find è impostato su maiuscole e minuscole. Se si desidera che la ricerca di una parola o di una frase non abbia distinzione tra maiuscole e minuscole, utilizzare -nomino opzione con il comando find. È la versione non sensibile al caso del -nome comando.

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

    Il comando find ha molte opzioni disponibili per perfezionare la ricerca. Per ulteriori informazioni sul comando find, eseguire l'uomo trova  in una finestra di Terminale e premere Invio.

    Utilizzando il comando Locate

    Il comando locate è più veloce del comando find perché utilizza un database precedentemente costruito, 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 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 ottenere risultati aggiornati al minuto. Per fare ciò, digitare il seguente comando al prompt:

    sudo updatedb

    Inserisci la 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.

    trova i miei dati

    Ad esempio, il comando precedente 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'

    Il backslash 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 precedente, la barra rovesciata disabilita la sostituzione implicita di "mydata" con "* mydata *" in modo da ottenere solo risultati contenenti "mydata".

    Il comando mlocate è una nuova implementazione di locate. Indica 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 il contenuto di una directory è cambiato senza leggere di nuovo il contenuto e rende gli aggiornamenti al database più rapidi e meno impegnativi sul disco rigido.

    Quando si installa mlocate, il file binario / usr / bin / locate cambia in modo da puntare a mlocate. Per installare mlocate, se non è già incluso nella distribuzione Linux, digitare 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 di individuazione standard. Pertanto, è possibile creare manualmente il database digitando il seguente comando al prompt:

    sudo /etc/cron.daily/mlocate

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

    Per ulteriori informazioni sul comando locate o sul comando mlocate, digitare l'uomo localizza o uomo mlocate  in una finestra di Terminale e premere Invio. La stessa schermata di aiuto viene visualizzata per entrambi i comandi.

    Usando il comando che

    Il comando "which" restituisce il percorso assoluto dell'eseguibile che viene chiamato quando viene emesso un comando. Questo è utile per trovare la posizione di un eseguibile per creare un collegamento al programma sul desktop, su un pannello o in un altro posto nel desktop manager. Ad esempio, digitando il comando quale firefox visualizza i risultati mostrati nell'immagine qui sotto.

    Per impostazione predefinita, il comando which visualizza solo il primo eseguibile corrispondente. Per visualizzare tutti i file eseguibili corrispondenti, utilizzare -un opzione con il comando:

    quale -a firefox

    Puoi cercare più eseguibili contemporaneamente, come mostrato nell'immagine seguente. Vengono visualizzati solo i percorsi dei file 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 che è disponibile solo per l'utente root come utente normale, non verrà visualizzato alcun risultato.

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

    Utilizzando il comando Whereis

    Il comando whereis è usato per scoprire dove si trovano i file binario, sorgente e man page per un comando. Ad esempio, digitando whereis firefox al prompt visualizza i risultati come mostrato nell'immagine seguente.

    Se si desidera visualizzare solo il percorso dell'eseguibile, e non i percorsi verso la fonte e le pagine 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 si cerca il file eseguibile di un programma più spesso di quanto si farebbe per cercare le pagine di origine e man per quel programma. Puoi anche cercare solo i file sorgente ( -S ) o solo per le pagine man ( -m ).

    Per ulteriori informazioni sul comando whereis, digitare uomo dove in una finestra di Terminale e premere Invio.

    Comprendere la differenza tra il comando Whereis e il comando

    Il comando whereis mostra il percorso per le pagine binary, source e man per un comando, mentre il comando which mostra solo la posizione del file binario per il comando.

    Il comando whereis cerca in un elenco di directory specifiche per i file binary, source e man mentre il comando who cerca le directory elencate nella variabile di ambiente PATH dell'utente corrente. Per il comando whereis, l'elenco di directory specifiche può essere trovato 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 mostra solo il primo eseguibile che trova. Puoi cambiarlo usando il -un opzione, discussa in precedenza, per quale comando.

    Poiché il comando whereis utilizza solo percorsi codificati nel comando, potrebbe non essere sempre possibile trovare ciò che si sta 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 -un opzione per trovare tutte le occorrenze del comando in tutto il sistema.