Come trovare i file in Linux Usando la riga di comando

find è un comando per filtrare ricorsivamente gli oggetti nel file system basato su un semplice meccanismo condizionale. Utilizzare find per cercare un file o una directory sul file system. Utilizzando il flag-exec, i file possono essere trovati e immediatamente elaborati all’interno dello stesso comando.,

Find Linux Files by Name or Extension

Use find from the command line to locate a specific file by name or extension., Nell’esempio seguente per *.err file /home/username/ directory e sotto-directory:

find /home/username/ -name "*.err"

Si dovrebbe vedere un output simile nella console:

 /home/username/example.errThe matching file in the /home/username/ directory is "example.err"

Comune di Linux a Trovare i Comandi e la Sintassi

find comando di solito assume la seguente forma:

find options starting/path expression
  • options attributo controlla il comportamento e il metodo di ottimizzazione del tag find processo.,
  • L’attributostarting/path definisce la directory di livello superiore in cuifind inizia il filtraggio.
  • L’attributoexpression controlla i test che cercano la gerarchia di directory per produrre output.

Trova un file in Linux Usando il nome del file

Per trovare un file usando il nome del file, usa la sintassifind -name filename. Omettendo il percorso cerca il file su tutto il disco., Per esempio, è possibile trovare un file chiamato example.err si trova nel /home/username directory con il seguente comando:

find -name example.err

Si dovrebbe vedere un output simile:

 ./username/example.err

Trovare un File nella Directory Corrente con il Comando Find

guarda l’esempio di struttura di directory e file. Sono indicati negli esempi di questa guida.,desidera cercare il file example.err all’interno di una directory o sottodirectory, si può eseguire il seguente comando:

find . -name example.err

l’output simile al seguente:

 ./example.err./directory_1/example.err

L’uscita riflette directory_1 struttura di directory:

 ├── directory_1│ ├── subdirectory_1│ │ └── example.err│ └── example.err

Trovare i File di Immagine in Linux Utilizzando la Riga di Comando

Riferimento la struttura del file nella sezione precedente, c’è un immagine con nome image01.png che si trova nella directory principale (/)s della struttura di directory.,

Per trovare il file image01.png, eseguire il seguente comando find che individua tutti i .png file memorizzati all’interno della / directory.

find -name *.png

Si dovrebbe vedere un output simile:

 ./image01.png

Modificare il tipo di file di immagine e look per tutti i .jpg file all’interno della directory principale (/):

find -name *.jpg

L’output sarà simile a esempio., Fare riferimento alla struttura di directory di esempio nella sezione precedente per visualizzare la posizione del file.

 ./web_files/unnamed.jpg

Trovare un File Vuoto nella Directory Utilizzando la Riga di Comando

Per trovare un file vuoto nella directory utilizzando la riga di comando, eseguire il seguente comando:

find . -type f -empty

Se non si ottiene alcun risultato, quindi non c’è un file vuoto all’interno della directory corrente.

Opzioni e ottimizzazioni per la ricerca di file in Linux Utilizzando la riga di comando

La configurazione predefinita perfind ignoralink simbolici., Se si desidera find a seguire e a restituire i collegamenti simbolici, aggiungere il -L opzione per il comando, come illustrato di seguito:

find -O3 -L /var/www/ -name "*.html"

Questo comando consente il massimo livello di ottimizzazione (-O3) e permette find a seguire i link simbolici (-L). find cerca nell’intero albero delle directory sotto/var/www/ i file che terminano con.html.,

find ottimizza la sua strategia di filtraggio per aumentare le prestazioni. Tre livelli di ottimizzazione selezionabili dall’utente sono specificati come -O1, -O2 e -O3. L’ottimizzazione-O1 è l’impostazione predefinita e costringefind a filtrare in base al nome del file prima di eseguire tutti gli altri test.,

L’ottimizzazione a livello-O2 dà la priorità ai filtri dei nomi file, come in-O1, quindi esegue tutti i filtri dei tipi di file prima di procedere con altre condizioni che richiedono più risorse. Livello-O3 ottimizzazione consentefind per eseguire l’ottimizzazione più grave e riordina tutti i test in base alla loro spesa relativa e la probabilità del loro successo.,

Command Description
-O1 Filter based on filename first (default).
-O2 File name first, then file-type.,
-O3 Consente afind di riordinare automaticamente la ricerca in base all’uso efficiente delle risorse e alla probabilità. di successo
-maxdepth X Cerca la directory corrente e tutte le sottodirectory X livelli in profondità.
-iname Cerca senza riguardo per il caso di testo.,
-not Return only results that do not match the test case.
-type f Search for files.
-type d Search for directories.,

Trova i file in Linux per ora di modifica Usando la riga di comando

Il comandofind può filtrare una gerarchia di directory in base all’ultima modifica di un file., Per esempio, il seguente comando consente di trovare qualsiasi file con il .err estensione, che è stata modificata negli ultimi 7 giorni:

find / -name "*err" -mtime -7

L’esempio di comando restituisce il seguente output:

Uso di Grep per Trovare i File in Linux Utilizzando la Riga di Comando

find comando è solo in grado di filtrare la gerarchia di directory basato su un nome file e metadati. Se hai bisogno di cercare in base al contenuto del file, usa uno strumento comegrep., Si consideri il seguente esempio:

find . -type f -exec grep "test" '{}' \; -print

Questo comando cerca ogni oggetto nell’attuale gerarchia di directory (.) che è un file (-type f) e poi esegue il comando grep "test" per ogni file che soddisfa le condizioni. I file che corrispondono vengono stampati sullo schermo (-print). Le parentesi graffe ({}) sono un segnaposto per i risultati della corrispondenza di ricerca., Il {}sono racchiusi tra virgolette singole (') per evitare di passaregrep un nome di file malformato. Il comando-exec termina con un punto e virgola (;), che deve essere escape (\;) per evitare l’interpretazione da parte della shell.

Il file utilizzato nell’esempio (example.err) ha del testo al suo interno che dice “test”., Quando si esegue il comando di esempio, viene visualizzato un output simile:

Grep ha identificato ogni file all’interno della directory di lavoro corrente che contiene la stringa “test”.,

Nota

Prima di find comando per l’attuazione dell’ -exec opzione, si potrebbe generare un output simile all’esempio di cui sopra utilizzando il xargs comando:

find . -type f -print | xargs grep "test"

Processo e Trovare i File Utilizzando il Comando Trova in Linux

-exec opzione esegue comandi su ogni oggetto che soddisfa il find espressione., Si consideri il seguente esempio:

find . -name "example.err" -exec chmod o+r '{}' \;

Questo filtra ogni oggetto nella gerarchia corrente (.) per i file denominati rc.conf ed esegue il chmod o+r comando per modificare le autorizzazioni dei file del find risultati del comando.

Il comando di esempio esegue ed esegue l’opzione -exec nella directory principale del processo find. Utilizzare -execdir per eseguire il comando specificato nella directory in cui risiede la corrispondenza., Ciò può alleviare i problemi di sicurezza e produrre prestazioni migliori per alcune operazioni.

Le opzioni-exec o-execdir vengono eseguite senza ulteriori prompt. Se si preferisce essere richiesto prima dell’azione, sostituire-exec con-ok o-execdir con-okdir.

Come trovare ed eliminare file usando la riga di comando di Linux

Attenzione

Usa questa opzione con estrema cautela.,

Aggiungi l’opzione-delete alla fine di un’espressione di corrispondenza per eliminare tutti i file che corrispondono. Utilizzare questa opzione quando si è certi che i risultati corrispondono solo ai file che si desidera eliminare.

Nell’esempio seguente, find individua ricorsivamente tutti i file nella gerarchia a partire dalla directory corrente ed elimina tutti i file che terminano con .err estensione:

find . -name "*.err" -delete

Hai ancora qualche domanda?,

Unisciti alla nostra community e pubblica le tue domande per altri appassionati di Linode e Linux per aiutarti.

Domande correlate:

Lascia un commento

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