Come utilizzare il comando trova in Linux per cercare i file?

How Use Find Command Linux Search Files



Se sei un utente Linux, non puoi semplicemente fare affidamento sulla GUI per eseguire varie attività, quindi una solida conoscenza dei comandi del terminale è davvero essenziale. Tutte le distribuzioni basate su Linux eseguono i comandi per eseguire diverse attività amministrative.

Sebbene il terminale Linux sia un'interfaccia di testo che sembra complessa, in realtà è molto flessibile, facile da usare e uno strumento piuttosto utile. I comandi possono essere facilmente copiati da fonti online e incollati nel terminale per eseguire varie operazioni. Ci sono tonnellate di comandi, ma questo post si concentrerà sul comando di ricerca.







Il comando trova viene utilizzato per trovare, filtrare o cercare file e cartelle nel sistema in base alle condizioni specificate dall'utente ed eseguire diverse operazioni su di essi.



Discutiamo in dettaglio come utilizzare il comando trova, la sua sintassi e le varie operazioni eseguite da questo comando.



Sintassi del comando find in Linux

La sintassi del comando trova è mostrata di seguito:





trova [il percorso] [opzioni] [espressione]

Tre attributi vanno con il comando find:

  • [percorso]: definisce la directory dove iniziare la ricerca.
  • [opzioni]: definisce i criteri di filtraggio ad es. ricerca di un file/cartella in base al nome, all'autorizzazione, all'ora o alla data.
  • [espressione]: definisce quali azioni eseguire con il file.

Tutti gli attributi di cui sopra sono facoltativi in ​​quanto possono essere utilizzati in base al requisito.



Per dimostrazione, ho creato diverse directory e alcuni file di testo, vedi l'immagine qui sotto:

trova/1%20copy.png

Trovare un file per nome

Per cercare il file per nome, usa il comando indicato di seguito:

$trova.-nomeMioFileTesto1.txt

trova/2%20copy.png

Il punto dopo trova nel comando precedente indica la directory corrente.

Se non ricordi il nome esatto del file, la ricerca può essere ulteriormente perfezionata e non fa distinzione tra maiuscole e minuscole utilizzando -iname al posto del nome:

$trova.-nominomiofiletesto1.txt

trova/3%20copy.png

Trovare un file per tipo

Per trovare un file in base al tipo, utilizzare l'opzione -type con lettere note anche come descrittori come f per i file, d per le directory, l per il collegamento simbolico e s per i socket.

Per cercare in tutte le directory utilizzare:

$trova.-genereD

trova/4%20copy.png

Per cercare i file, usa:

$trova.-genereF

c%20copy.png

Trovare un file in base all'estensione del file

Per cercare il file in base al modello, ad esempio l'estensione del file, ad esempio la visualizzazione di tutti i file con .txt, utilizzare il seguente comando:

$trova.-nome *.testo

trova/5%20copy.png

Tutti i file con .txt verranno visualizzati insieme alle directory corrispondenti.

Trovare ed eliminare un file

Per cercare ed eliminare un file, utilizzare il comando seguente:

$trova.-nominomiofiletesto1.txt-exec rm {};

trova/6%20copy.png

Il comando precedente cerca prima il file e poi lo elimina. L'immagine dimostra che MyTextFile1 è stato eliminato.

Per eliminare tutti i file con estensione .txt, puoi utilizzare il comando aggiunto:

$trova.-nome *.testo-Elimina

find/7%20copy.png

Trovare un file per dimensione

Il comando trova può anche cercare un file per dimensione. Usa semplicemente l'opzione -size insieme ai suoi descrittori come b per blocchi da 512 Kb, c per byte, k per kilobyte, M e G rispettivamente per megabyte e gigabyte:

$trova.-genereF-dimensione -1024c

trova/8%20copy.png

Il comando sopra menzionato cerca tutti i file con una dimensione inferiore a 1024 byte. La ricerca può essere ulteriormente affinata, ad esempio, se vogliamo trovare tutti i file inferiori a 1Mb, allora utilizziamo il comando seguente:

$trova.-genereF-dimensione1 M

ab/a%20copy.png

Per tutti i file maggiori di 1Mb, usa il comando seguente:

$trova.-genereF-dimensione+1 M

ab/b%20copy.png

È inoltre possibile definire un intervallo di dimensioni, utilizzando il comando allegato:

$trova. -genereF-dimensione+1 M-dimensione10 M

Trovare file per permesso

Per cercare un file per autorizzazione, utilizzeremo l'opzione -perm, quindi il codice di autorizzazione, come mostrato di seguito:

$trova.-permanente 664

trova/10/20copy.png

Trova un testo all'interno di file di testo

Per trovare il testo in più file di testo nel tuo sistema, usa il comando indicato di seguito:

$trova.-genereF-nome *.testo-exec presa'Ciao'{};

trova/12%20copy.png

Il comando sta cercando la parola Hello nei file di testo. L'output è costituito da stringhe di testo dai file di testo contenenti Hello.

Ricerca di un file per data e ora di modifica

Per accedere a un file con la sua ultima modifica, utilizzare il comando seguente:

$trova.-genereF-nomino *.testo-mmin+10

find/13%20copy.png

Il comando precedente sta cercando un file modificato l'ultima volta quattro minuti fa e m indica la modifica.

$trova. -genereF-nomino *.testo-amin -10

find/14%20copy.png

Il comando sopra sta cercando un file l'ultimo accesso 4 minuti fa e la a in amin sta a significare Access. Per accedere a un file che è stato modificato quattro giorni fa, usa -mtime +4 al posto di mmin +4.

Conclusione

Il comando find in Linux è un comando molto utile che consente di cercare un file o una directory utilizzando criteri diversi e consente anche di modificare i file dal terminale. In questa guida abbiamo osservato la sintassi del comando find in Linux e abbiamo appreso come utilizzare il comando find per eseguire varie funzioni.