Come trovare un file per nome in Linux

Trova i tuoi file senza sforzo dalla riga di comando in Linux

Gli utenti di solito cercano di trovare un file utilizzando la GUI. Tuttavia, a volte diventa un lavoro molto noioso trovare un singolo file nell'enorme pila di file sul tuo sistema. Trovarlo convenzionalmente può essere un compito che richiede tempo. Per semplificare questo compito, Linux offre alcuni comandi per svolgere questo lavoro per te.

trovare è un comando popolare utilizzato nei sistemi Linux che può aiutarti a cercare vari file in base ai loro nomi, tipo, estensione, autorizzazioni, proprietario, ecc.

In questo tutorial, ci concentreremo sulla ricerca dei file per nome. Vedremo i diversi argomenti che possono essere utilizzati con il trovare comando. Impareremo anche il individuare comando che è anche un modo più veloce per cercare i file per nome.

Sintassi per trovare comando

Usando il trovare comando in modo corretto può rendere più facile il tuo compito. Trovare i file di particolare tipo o estensione o cercare per nome sarà possibile se si comprende bene la sintassi generale di questo comando.

La sintassi generale per il trovare comando è il seguente.

trova [percorso_di ricerca] [espressione] [opzioni] [trova_cosa]

Ho cercato di semplificare la sintassi di trovare comando per capire meglio il comando.

Esaminiamo ciascun attributo della sintassi per avere un'idea del significato di ciascuno di essi.

Search_Path: Ecco il percorso in cui specifichiamo il percorso da cui desideriamo che il sistema inizi la ricerca del file. In breve, viene specificata la directory di partenza per iniziare la ricerca.

Espressione: è possibile specificare i modelli di ricerca per il particolare file che si sta cercando.

Opzioni: è possibile utilizzare le opzioni disponibili utilizzate con il trovare comando in questo spazio.

trovare cosa: In questo attributo, inserisci il nome o parte del nome del file da cercare.

Illustriamo questo comando con un esempio.

trova /home/gaurav/workspace -name "source.c"

In questo comando, sto usando il trovare comando per cercare un file “source.c”. Ho chiesto specificamente di cercare nel percorso "/home/gaurav/workspace". Usando il -nome l'opzione mi consente di cercare il file specificato da "source.c".

Questa è la dimostrazione più semplice per l'utilizzo del trovare comando.

Ricerca di file nella directory corrente

Usando il trovare comando nella sua forma più semplice è cercare i tuoi file nella directory di lavoro corrente.

trovare .

Questo comando visualizzerà tutti i file nella directory di lavoro corrente. Qui il '.' significa la 'directory di lavoro corrente'. Di seguito è riportato l'output dalla mia directory di lavoro corrente. Tutti i file presenti in questa directory sono elencati senza alcun filtro

Produzione:

. ./context_log.policy ./snap ./snap/couchdb ./snap/couchdb/current ./snap/eclipse ./snap/eclipse/current ./snap/vim-editor ./snap/vim-editor/current ./ snap/vim-editor/common ./snap/vim-editor/1 ./snap/htop ./snap/htop/current ./snap/htop/common ./snap/htop/common/.local ./snap/htop /common/.local/lib ./snap/htop/common/.local/lib/locale ./snap/htop/common/.local/lib/locale/en_IN.UTF-8 ./snap/htop/common/. local/lib/locale/en_IN.UTF-8/LC_CTYPE

Per cercare un file di cui si conosce il nome approssimativo, utilizzare il trovare comando come mostrato di seguito.

trovare . -name [stringa_da_nomefile\*]

Esempio:

trovare . -nome contesto\*

Questo comando cerca i file che contengono la stringa "contesto".

Produzione:

./context_log.policy ./context.xml ./context_preview.c

Vengono elencati tutti i file nella directory corrente che contiene la stringa "contesto".

Ora il problema sorge con questo comando quando provi a prenderti la libertà sulla distinzione tra maiuscole e minuscole mentre digiti il ​​nome del file o la stringa approssimativa.

Linux è piuttosto cauto riguardo alla distinzione tra maiuscole e minuscole e, quindi, ci sono buone probabilità che la tua ricerca possa fallire. Non otterrò l'output per il comando di ricerca se utilizzo la stringa come "CONTESTO" anziché "contesto". Anche se una singola lettera nel nome del file è in un caso diverso da quello del nome del file originale, la ricerca avrà esito negativo.

Ma non c'è bisogno di preoccuparsene. Puoi semplicemente sostituire il -nome opzione con il -nomino. Ciò consente di cercare i file indipendentemente dai casi in cui si trova il loro nome. Basta apportare questa semplice modifica al comando e andrà tutto bene.

trovare . -iname CONT\*

L'output sarà lo stesso, anche se ho usato la stringa in maiuscolo.

./context_log.policy ./context.xml ./context_preview.c

Ricerca di file in directory diverse

Puoi facilmente cercare i file in qualsiasi directory del sistema Linux, indipendentemente dalla directory in cui stai attualmente lavorando.

trova [percorso_directory] -iname [nomefile_specifico]

Esempio:

trova /home/gaurav/tomcat -iname ath.html

Qui, ho cercato un file specifico "ath.html" e non i file simili a questa stringa. Quindi l'output sarà solo il file specifico come menzionato sopra.

/home/gaurav/tomcat/ath.html

Ora, supponiamo di non conoscere il nome completo del file ma solo la stringa di questo nome di file. Quindi possiamo cercare i file nel modo seguente.

trova /home/gaurav/tomcat -iname ath\*

Questo comando cercherà tutti i file che includono la stringa "ath" all'inizio. ho usato il -nomino opzione qui, quindi non devo preoccuparmi della distinzione tra maiuscole e minuscole.

Produzione:

/home/gaurav/tomcat/ATHENIAN_ART.html /home/gaurav/tomcat/ath_things.html /home/gaurav/tomcat/ath.html /home/gaurav/tomcat/ATHENIAN_ART.pdf /home/gaurav/tomcat/ATHHHHhow.html

Puoi anche usare il comando per cercare più file che terminano con un'estensione simile nel loro nome.

Esempio:

trova /home/gaurav/tomcat -iname "*.c"

Il comando cercherà tutti i file nella directory specificata che contiene .c come estensione nel nome del file.

Produzione:

/home/gaurav/tomcat/stiil.c /home/gaurav/tomcat/project/temp.c /home/gaurav/tomcat/copy.c /home/gaurav/tomcat/gy.c

Abbiamo appreso del trovare comando per cercare i file specificati dal nome del file. Ora, esploriamo un altro comando che è più veloce del convenzionale trovare comando.

individuare panoramica dei comandi

C'è un altro comando per cercare i file sul tuo sistema che è più veloce del trovare comando. È il individuare comando. Questo comando non è preinstallato nelle distribuzioni Linux. È possibile utilizzare i seguenti passaggi per scaricare e installare il individuare pacchetto di comandi sul tuo sistema.

Per sistemi Ubuntu e Debian, uso:

sudo apt update sudo apt install mlocate

Per i sistemi Cent Os e Fedora, uso:

sudo yum install mlocate

Il comando locate cerca il file secondo il pattern dato nell'input. individuare utilizza il file di database per cercare i file, questo file di database è generato dal aggiornatob comando.

sudo aggiornato

Il tempo impiegato per aggiornare questo file di database può variare da utente a utente a seconda dei file sul sistema.

Usando il individuare comando

Puoi usare il individuare comando nel modo seguente. Assicurati di aggiornare il file del database usando il comando sudo aggiornato.

Sintassi:

individuare [nome_file_o_parte_di_nome_file]

Questo comando avvierà la ricerca dalla directory principale. Restituirà l'elenco di tutti i file sul sistema che contiene il nome del file o una parte del nome del file come specificato nel comando.

Esempio:

individuare copy.c

Produzione:

/home/gaurav/Downloads/git-2.23.0/copy.c /snap/core/9804/usr/lib/python3.5/__pycache__/copy.cpython-35.pyc /snap/core/9993/usr/lib /python3.5/__pycache__/copy.cpython-35.pyc /snap/core18/1880/usr/lib/python3.6/__pycache__/copy.cpython-36.pyc /snap/core18/1885/usr/lib/python3 .6/__pycache__/copy.cpython-36.pyc /snap/core20/634/usr/lib/python3.8/__pycache__/copy.cpython-38.pyc /usr/lib/python3.5/__pycache__/copy.cpython -35.pyc /usr/lib/python3.6/__pycache__/copy.cpython-36.pyc /usr/share/icons/MacBuntu-OS/apps/128/copy.com.png

La riga evidenziata mostra che è stato trovato il file esatto "copy.c". Insieme a questo risultato, vengono visualizzati anche alcuni altri file che contengono "copy.c" come parte del loro nome file.

Per evitare l'ingombro di altri file indesiderati e trovare solo il file desiderato, è possibile utilizzare il comando locate nel modo seguente.

individuare -b '\nomefile'

Esempio:

individuare -b '\copy.c'

Produzione:

/home/gaurav/Downloads/git-2.23.0/copy.c

Il file specifico menzionato nei criteri di ricerca è elencato insieme al percorso della directory in cui si trova.

Usando il individuare Il comando può sembrare un po' complicato, ma è un metodo più veloce per cercare file quando non si conosce la posizione esatta di quel file. Il recupero dei file diventa super veloce quando hai aggiornato il file di database utilizzato dal comando locate.

Conclusione

In questo breve tutorial, abbiamo appreso due importanti comandi, trovare e individuare. Ora puoi cercare facilmente i file sul tuo sistema senza perderti nella pila di file. L'utilizzo di questi comandi si dimostrerà sicuramente un risparmio di tempo ed efficiente per la tua attività di ricerca dei file.