Comando TROVA Linux con esempi

Sai quanti file ci sono in una nuova installazione di Linux ? Se usi PopOS! Distribuzione Linux(Linux distribution) ad esempio, ci sono oltre 31.000 file. Questo prima di iniziare a creare documenti, archiviare musica, scaricare PDF(PDFs) o organizzare immagini.

Per questo motivo, trovare il file o la cartella giusti in Linux quando ne hai bisogno diventa una sfida. In questo articolo imparerai come usare il comando FIND di Linux(Linux FIND) e ti forniremo tutti gli esempi possibili.

Sintassi del comando TROVA Linux(Linux FIND Command Syntax)

La sintassi si riferisce al modo in cui le parole o i comandi vengono messi insieme. Proprio(Just) come una frase normale può diventare un'assurdità semplicemente mescolando le parole, i comandi possono fallire se non vengono utilizzati nella sintassi corretta.

trova [percorso] [condizioni] [azioni](find [path] [conditions] [actions])

Ecco cosa significa:

trova(find ) : avvia l' utilità Trova in (Find)Linux

percorso(path ) – dove guardare

condizioni(conditions ) – argomenti che si desidera applicare alla ricerca

azioni(actions ) : cosa vuoi fare con i risultati

Un semplice esempio che utilizza tutti e tre è simile a:

Trovare . -nome file-campione.rtf -stampa(find . -name file-sample.rtf -print)

Come hai intuito, questo troverà il nome del file file-sample.rtf

Il percorso punto ( . ) indica a find di cercare nella directory corrente e in tutte le directory al suo interno. 

La condizione -name dice a find di ottenere il file con quel nome specifico.

L' azione -print dice a TROVA di mostrare i risultati sullo schermo.

Il punto e -print sono i valori predefiniti per il comando trova. Quindi farà ancora la stessa cosa se non li usi. Quindi, trova -name file-sample.rtf(find -name file-sample.rtf ) ti darà gli stessi risultati.

Linux TROVA in un'altra directory(Linux FIND In Another Directory)

Puoi cercare in una directory diversa da quella in cui ti trovi. Inserisci semplicemente(Just) il percorso della directory dopo FIND . Se sei alla radice e sai che il file si trova da qualche parte nella directory home/user , useresti:

find home/user -name file-sample.rtf

È ancora una ricerca ricorsiva, quindi passerà attraverso tutte le directory sotto user .

Linux FIND Cerca in più directory(Linux FIND Search Multiple Directories)

Se si desidera cercare in più directory contemporaneamente, è sufficiente elencarle nel comando, separate da uno spazio.

find /lib /var /bin -name file-sample.rtf

Linux FIND senza ricorsione o ricorsione limitante(Linux FIND with No Recursion or Limiting Recursion)

Se hai usato il comando TROVA(FIND) sopra al livello principale, guarderebbe in ogni directory del sistema. Quindi, se vuoi restare solo nella directory corrente, usa l' opzione -maxdepth . Il numero dopo -maxdepth dice a Trova quanto andare in profondità prima di fermarsi. 

Usare -maxdepth 1 significa solo questa directory. 

trova -name file-sample.rtf -maxdepth 1(find -name file-sample.rtf -maxdepth 1)

Usare -maxdepth 2 o un numero maggiore significa andare più in profondità di molti livelli.

trova -maxdepth 5 -name file-sample.rtf(find -maxdepth 5 -name file-sample.rtf)

Esempio di carattere jolly TROVA Linux(Linux FIND Wildcard Example)

Il comando TROVA utilizza l'asterisco ( (FIND)* ) come carattere jolly. Usalo per qualsiasi parte del nome di cui non sei sicuro. Può essere utilizzato più di una volta nel nome. Senza il tipo di file come parte del nome del file, i risultati includeranno anche le directory corrispondenti.

find home/user -name file*sample*

Linux TROVA per tipo Esempio(Linux FIND by Type Example)

Per cercare solo un file o una directory, utilizzare l'opzione -type e il descrittore appropriato. Ce ne sono alcuni, ma quelli di file e directory sono i più comuni:

f – file

d – directory

b – dispositivo di blocco

c – dispositivo a caratteri

l – collegamento simbolico

s – presa

find home/user -name file*sample* -type d

Esempio Linux FIND senza distinzione tra maiuscole e minuscole(Linux FIND Case Insensitive Example)

A differenza di Windows , Linux si preoccupa se una lettera è maiuscola o minuscola. Quindi, se vuoi che cerchi sia File-Sample.rtf che file-sample.rtf, usa l' opzione -iname .

find home/user -iname File-Sample.rtf

Linux TROVA diversi file di esempio(Linux FIND Several Files Example)

Supponiamo che tu voglia trovare le versioni .rtf e .html di un file. Questo può essere fatto in un comando usando l' operatore -o (or). (-o)In alcune distribuzioni, potrebbe essere necessario inserire i nomi tra parentesi, come ( -name file-sample.rtf -o -name file-sample.html )

find home/user -name file-sample.rtf -o -name file-sample.html

Linux TROVA i file che non corrispondono a un nome(Linux FIND Files That Don’t Match a Name)

Forse sai che esiste la versione .html di un file, ma non se ce ne sono altri. Puoi filtrare la versione .html dalla ricerca usando l' opzione -not .

find home/user -name file-sample* -not -name *.html

Linux TROVA senza risultati di errore(Linux FIND Without Error Results)

Nell'esempio di ricerca senza ricorsione, nota che elenca tutte le directory in cui non è stato possibile eseguire la ricerca e il risultato corretto. Questo è fastidioso. Fermiamoci dal mostrare tutte quelle directory " Autorizzazione(Permission) negata". Combinalo con un altro comando del terminale Linux(Linux terminal command) , grep. Puoi anche usare Trova(Find) con grep per trovare i file che contengono parole specifiche(find files with specific words in them) .

find -maxdepth 5 -name file-sample.rtf 2>&1 | grep -v “Permission denied”

Analizziamo 2>&1 .

2 – rappresenta stderr che è l'abbreviazione di output di errori standard. 

1 – rappresenta stdout che è l'abbreviazione di standard output

> – significa reindirizzare qualsiasi output si trovi alla sua sinistra verso qualunque cosa si trovi alla sua destra.

& – significa mettere insieme.

Quindi 2>&1 significa prendere gli errori standard e reindirizzarli, quindi metterli insieme all'output standard in un output.

Ora diamo un'occhiata a | grep -v “Permission denied” .

| (chiamato pipe) – dice a Linux di alimentare i risultati di qualunque cosa sia alla sua sinistra con qualunque cosa sia alla sua destra. Viene inviato al comando grep.

grep – è un'utilità di ricerca di testo. 

-v – dice a grep di cercare tutto ciò che non corrisponde al testo a sinistra di -v. In questo caso, sta dicendo a grep di trovare solo tutto ciò che non contiene il testo o la stringa " Autorizzazione(Permission) negata". Quindi grep ti mostrerà solo i risultati che stai cercando e tutti gli errori che non corrispondono a " Autorizzazione(Permission) negata".

Linux TROVA per esempio di autorizzazioni(Linux FIND by Permissions Example)

Per usarlo bene, devi imparare i permessi di Linux(learn Linux permissions)

I file di esempio hanno tutti i permessi 664, tranne uno con i permessi 775. Usa l' opzione -perm per trovarlo.

find Documents/ -name file-sample* -type f -perm 775

Esempio di TROVA per dimensione di Linux(Linux FIND by Size Example)

Trovare i file in base alle dimensioni è utile per far sì che quei file enormi riempiano il tuo disco rigido. Utilizzare l'opzione -size, la dimensione desiderata e uno dei seguenti suffissi. Se non viene utilizzato alcun suffisso, -size per impostazione predefinita è b . Per trovare file uguali e più grandi di una certa dimensione, metti il ​​segno più (+) davanti alla dimensione.

M – Megabyte

G – Gigabyte

k – Kilobyte

b – blocchi (512 byte – default)

c – byte

w – parole (due byte insieme)

find -size +500k

Linux TROVA dal proprietario(Linux FIND by Owner)

Esistono due modi per trovare i file in base al proprietario. Uno è dal nome utente di un proprietario e l'altro è dal gruppo dell'utente. Per trovare per nome utente, utilizzare l' opzione -user , seguita dal nome utente. Per trovare per gruppo di utenti, utilizzare -group seguito dal nome del gruppo..

trova -user nomegruppo(find -user groupname ) o trova -user nomeutente(find -user username)

Linux FIND Files in base all'ultimo esempio modificato(Linux FIND Files by Last Modified Example)

Per trovare i file che sono stati modificati o modificati negli ultimi X numero di giorni, utilizzare -mtime seguito da un numero. Mettendo un segno meno ( ) davanti al numero si troverà qualcosa di alterato in tanti giorni prima di adesso. Un segno più ( + ) significa che molti giorni prima di adesso. 

find -name “file-sample*” -mtime +5 (greater than 5 days ago)

find -name “file-sample*” -mtime -5 (less than 5 days ago)

Per trovare l'ultima modifica in minuti, utilizzare l'opzione -mmin seguita dal numero di minuti. Usa + e – come sopra.

find -name “file-sample*” -mmin -5

find -name “file-sample*” -mmin +5

Linux FIND Files by Last Accessed Time Esempio(Linux FIND Files by Last Accessed TIme Example)

L'opzione utilizzata per trovare i file in base a quando sono stati aperti l'ultima volta è -atime per giorni e -amin per minuti. Seguilo con il numero di giorni o minuti per tornare indietro e usa il segno + e – come maggiore e minore di.

find -name “file-sample*” -atime -5

find -name “file-sample* -amin -5

Combina TROVA con altri comandi Linux(Combine FIND with Other Linux Commands)

C'è un esempio sopra dell'uso di find con il comando grep e puoi usarlo con molti altri. Puoi vedere che l'uso di trova e altri comandi può essere molto potente e un enorme risparmio di tempo. Immagina(Imagine) di dover eliminare un mucchio di un particolare tipo di file. Invece di cercare in Esplora file, crea il comando giusto ed è fatto in pochi secondi. Come utilizzerai ora il comando trova?



About the author

Sono un ingegnere del software con oltre due anni di esperienza lavorando su applicazioni mobili e desktop. Ho esperienza in aggiornamenti di Windows, servizi e Gmail. Le mie capacità mi rendono il candidato perfetto per attività come lo sviluppo di applicazioni Windows o la manutenzione dei client di posta elettronica.



Related posts