GNU/Linux >> Linux Esercitazione >  >> Linux

Come trovare file in Linux con il comando Trova

Introduzione

Il find comando ti consente di cercare una stringa specifica di caratteri utilizzando l'interfaccia della riga di comando di Linux. È uno strumento molto pratico in quanto non si limita ai nomi dei file. Puoi usarlo per cercare una posizione specifica, aggiungere opzioni per controllare il comportamento della ricerca e usare comandi aggiuntivi per dirgli come gestire i dati che trova.

Questo tutorial mostra come individuare e gestire i file in Linux con find comando.

Prerequisiti

  • Accesso a una finestra di terminale/riga di comando
  • Un account utente con sudo privilegi

Sintassi del comando di ricerca di base

La sintassi di base del find comando utilizza il seguente formato:

find <options> <location> <expression> <action> <name>
  • Posizione – Indica a find da dove iniziare a cercare il termine di ricerca.
  • Espressione – Dice a find quale categoria di informazioni dovrebbe cercare.
  • Azione – L'azione attributo esegue un comando sui risultati della ricerca. È un elemento opzionale.
  • Nome – Rappresenta la stringa di testo (o altri dati) che stai cercando.
  • Opzioni – Questo attributo non è un elemento obbligatorio del find comando. Può essere utilizzato per controllare il comportamento e ottimizzare il processo di ricerca.

Come usare trova comando

Il find comando elenca tutte le istanze della stringa di caratteri che hai incluso nella tua ricerca. Il find Il comando consente inoltre di definire parametri di ricerca, opzioni e posizioni con un elevato livello di precisione.

Trova i file per posizione

La ricerca di file in base alla stringa di posizione può essere un semplice comando come:

sudo find /home/user filename

Questo comando ricerca l'utente account nella casa directory. Se non sei sicuro di dove vuoi guardare, puoi ampliare la posizione di ricerca.

Ad esempio, se hai due account utente e non ricordi in quale hai salvato un file, puoi inserire:

sudo find /home filename

Il find Il comando cerca tutto sotto /home directory (incluse tutte le directory utente) per il termine di ricerca. Nel nostro esempio, il termine di ricerca è nomefile .

Usa un punto . per cercare la directory in cui ti trovi attualmente:

sudo find .

Inserisci una barra / e il tuo sistema cercherà nell'intero disco rigido:

sudo find /

Il carattere tilde ~ viene utilizzato per cercare nella home directory dell'utente corrente:

sudo find ~

Usa le espressioni con comando trova

Le espressioni applicano parametri aggiuntivi a find processo di ricerca dei comandi. L'espressione più comune è -name . Questa espressione cerca la posizione che hai specificato per un file con il nome digitato nel nome campo.

sudo find –name settings.txt

Il sistema cercherà nella directory corrente qualsiasi file con il nome settings.txt.

Il sistema visualizza solo i nomi dei file con una corrispondenza esatta con i termini di ricerca. Questa limitazione potrebbe causare problemi se un nome file ha lettere maiuscole, ad esempio.

Per dire a find per ignorare le maiuscole/minuscole, usa il –iname espressione, come segue:

sudo find /home –iname filename

Il sistema ricerca in /home directory e restituire qualsiasi cosa denominata nomefile , Nome file e persino fIlEnAmE .

Usa il –type d espressione per specificare se stai cercando un file o una directory:

sudo find . –type d –name Videos

Questo comando cercherà nella directory corrente (con il punto) una directory con il nome "Video ."

Per impostazione predefinita, find cerca i file, ma puoi specificare i file usando -type f .

Mostra tutti i file che non includono il nome cercato:

sudo find . -not filename

Cerca file con un determinato livello di autorizzazione:

sudo find . -perm 0000

Restituisce l'elenco di tutti i file di proprietà di un nome utente specifico:

sudo find . -user username

Mostra gli ultimi 00 file modificati:

sudo find . -mtime 00

Il valore numerico definisce il numero di file visualizzati dal sistema. Mostra gli ultimi 00 file a cui si è effettuato l'accesso:

sudo find . -atime 00

Mostra tutti i file maggiori di 20 megabyte:

sudo find . -size +20M

Il terminale presenta un elenco di tutti i file che soddisfano i criteri di dimensione.

I comandi che fanno riferimento alla dimensione degli elementi ricercati possono essere utilizzati singolarmente per mostrare tutti i file più grandi di una certa dimensione, più piccoli di una certa dimensione o all'interno di un intervallo definito.

Trova nome o interno

Il name attributo definisce l'oggetto della tua ricerca. Il find lo strumento sta andando nella posizione specificata per qualsiasi stringa di caratteri immessa. In genere, il nome del file che stai cercando si trova alla fine del comando, dopo la posizione, le opzioni e le espressioni.

Lettere e numeri standard vengono inseriti come una stringa di caratteri alla fine del comando. I caratteri speciali – un carattere jolly, un punto, una barra, ecc. – richiedono l'uso di virgolette singole attorno al nome. Le virgolette singole assicurano che il sistema interpreti correttamente la richiesta.

Inserisci il comando seguente per cercare i file con un'estensione specifica, come .html o .php :

sudo find . –type f –name ‘*.html’

Il sistema ricerca nella directory corrente i file regolari (type –f ) che hanno un'estensione di .php . In questo caso, l'asterisco (il * segno) viene utilizzato come carattere jolly , il che significa che può sostituire qualsiasi numero di caratteri di qualsiasi tipo.

I caratteri jolly sono utili se ricordi solo una parte del nome di un file o stai cercando file con un'estensione particolare.

Esegui azioni con il comando trova

Abbiamo visto come utilizzare il find comando per visualizzare i risultati della ricerca nella finestra del terminale. Un azione l'attributo può migliorare tale funzionalità ed eseguire un'attività particolare una volta individuato un file.

Il comando seguente ricerca il contenuto effettivo dei file (anziché solo i nomi dei file):

sudo find ~ –type f –exec grep “contents” ‘{}’ \; –print
  1. Chiediamo al sistema di trovare un file (-type f ) nella home directory del nostro utente (~ ).
  2. Indichiamo al sistema di agire (-exec ) eseguendo grep comando per cercare nel contenuto di tutti i file la parola contenuto .
  3. Il {} le parentesi indicano i risultati della corrispondenza del find comando e sono tra virgolette singole in modo che il grep comando non li interpreta erroneamente.
  4. Stiamo chiudendo il grep comando con un punto e virgola (; ), e stiamo usando una barra rovesciata (\ ) in modo che il sistema non interpreti erroneamente il punto e virgola come un'istruzione.
  5. Infine, il –print opzione indica al sistema di visualizzare i risultati.

Copia e incolla questo comando nella finestra del tuo terminale e sostituisci il tuo percorso di ricerca con ~ carattere e il termine di ricerca per la parola contenuto.

Puoi usare il find –exec combinazione per modificare rapidamente i permessi dei file:

sudo find /path –name “filename.ext” –exec chmod 777 ‘{}’ \;

Questo comando usa il –exec comando per eseguire chmod per modificare i permessi del file nomefile.ext in modo che possa essere letto, scritto ed eseguito da tutti.

Trova ed elimina i file con il comando trova

Con il –delete comando, puoi trovare e rimuovere rapidamente uno o più file in un comando.

In questo esempio, find elimina tutti i file che terminano con .html estensione.

sudo find . –name “*.html” –delete

Questo comando cercherà nella directory corrente (visualizzata nel prompt dei comandi) tutti i file con .html estensione ed eliminarli. L'immagine illustra la semplicità del processo.

Questo tipo di azione è utile per rimuovere i vecchi file di backup se hai sostituito “*.bak” invece di “*.bmp”.

Aggiungi opzioni per trovare Comando

Le opzioni sono funzioni speciali inserite prima del percorso di ricerca in un find stringa di comando. Il -L , -H e -P sono elementi opzionali utilizzati per controllare la gestione dei collegamenti simbolici.

  • –P Questa opzione rappresenta il comportamento predefinito. Il sistema non segue collegamenti simbolici.
  • -H Il sistema non segue collegamenti simbolici se non durante l'elaborazione di questo specifico comando.
  • -L Segue collegamenti simbolici. Le informazioni sono tratte dal file a cui rimanda il collegamento. Non per il link stesso.

Le opzioni possono modificare il livello di ottimizzazione della ricerca. Esistono tre (3) livelli di ottimizzazione che definiscono il modo in cui il programma di ricerca organizza le ricerche e la velocità di esecuzione di tale ricerca.

  • –O1 Questo livello di ottimizzazione viene utilizzato per impostazione predefinita. Le ricerche basate sui nomi dei file vengono eseguite per prime.
  • –O2 Le ricerche basate sul tipo vengono eseguite subito dopo le ricerche basate sui nomi. Prima di qualsiasi altra ricerca.
  • –O3 Vengono eseguite ricerche per massimizzare la velocità. Indipendentemente dagli altri elementi della query.

Linux
  1. Trova file e directory su Linux con il comando find

  2. Come controllare i permessi con il comando trova

  3. Utilizzo del comando trova Linux:utilizzo con esempi

  4. Come trovare file duplicati in Linux? L'aiuto è qui con il comando fdupes!

  5. Come trovare file con il comando fd in Linux

Come trovare file con il comando fd in Linux

Come scaricare file con il comando Curl in Linux

Come scaricare file con il comando Wget in Linux

Tutorial comando trova Linux (con esempi)

Come trovare le cartelle in Linux

Come trovare file con dozzine di criteri con il comando Trova Bash