Sai quanti file ci sono in una nuova installazione di Linux? Se usi PopOS! Distribuzione Linux ad esempio, ci sono oltre 31.000 file. Questo prima di iniziare a creare documenti, archiviare musica, scaricare PDF o organizzare immagini.
Per questo motivo, trovare il file o la cartella giusta in Linux quando ne hai bisogno diventa una sfida. In questo articolo imparerai come utilizzare il comando FIND di Linux e ti forniremo tutti gli esempi possibili.
Sintassi del comando FIND di Linux
La sintassi si riferisce al modo in cui le parole, o i comandi, vengono messi insieme. Proprio come una frase normale può diventare priva di senso semplicemente mescolando le parole, i comandi possono fallire se non vengono utilizzati nella sintassi corretta.
trova [percorso] [condizioni] [azioni]
Ecco cosa significa:
trova : avvia l'utilità Trova in Linux
percorso – dove cercare
condizioni – argomenti che desideri applicare alla ricerca
azioni - cosa vuoi fare con i risultati
Un semplice esempio che utilizza tutti e tre è simile a:
trova . -nome file-esempio.rtf -print
Come hai indovinato, questo troverà il nome del file file-sample.rtf .
Il percorso del punto (. ) dice a find di cercare nella directory corrente e in tutte le directory al suo interno.
La condizione -name indica a find di ottenere il file con quel nome specifico.
L'azione -print indica a FIND di mostrare i risultati sullo schermo.
Il punto e -print sono valori predefiniti per il comando find. Quindi farà comunque la stessa cosa se non li usi. Pertanto, find -name file-sample.rtf ti fornirà gli stessi risultati.
TROVA Linux in un'altra directory
Puoi cercare in una directory diversa da quella in cui ti trovi. Basta inserire il percorso della directory dopo TROVA. Se sei alla radice e sai che il file si trova da qualche parte nella directory home/utente , utilizzeresti:
trova home/nome utente file-esempio.rtf
È ancora una ricerca ricorsiva, quindi verrà eseguita in ogni directory in utente ..
Linux FIND Cerca in più directory
Se desideri effettuare la ricerca in più directory contemporaneamente, elencale semplicemente nel comando, separate da uno spazio.
trova /lib /var /bin -nome file-esempio.rtf
Linux FIND senza ricorsione o ricorsione limitata
Se utilizzassi il comando TROVA sopra al livello root, esaminerebbe ogni directory del sistema. Quindi, se vuoi restare solo nella directory corrente, usa l'opzione -max Depth . Il numero dopo -max Depth indica la profondità da raggiungere prima di fermarsi.
Utilizzando -max Depth 1 si intende solo questa directory.
trova -nome file-esempio.rtf -maxprofondità 1
Utilizzare -max Depth 2 o un numero maggiore significa andare più in profondità di tanti livelli.
trova -max Depth 5 -name file-sample.rtf
Esempio di caratteri jolly FIND di Linux
Il comando TROVA utilizza l'asterisco (* ) 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.
trova home/nome utente file*esempio*
Linux TROVA per tipo Esempio
Per cercare solo un file o una directory, utilizza l'opzione -type e il descrittore appropriato. Ce ne sono alcuni, ma quelli relativi ai file e alle directory sono i più comuni:
f – file
d – directory
b – blocca il dispositivo
c – dispositivo a caratteri
l – collegamento simbolico
s – presa
trova home/utente -nome file*esempio* -tipo d
Esempio Linux FIND senza distinzione tra maiuscole e minuscole
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 .
trova home/utente -iname File-Sample.rtf
Esempio di TROVA diversi file su Linux
Supponiamo che tu voglia trovare le versioni .rtf e .html di un file. Ciò può essere fatto con un comando utilizzando l'operatore -o (o). In alcune distribuzioni, potrebbe essere necessario inserire i nomi tra parentesi, come ( -name file-sample.rtf -o -name file-sample.html ) ..
trova home/nome utente file-sample.rtf -o -nome file-sample.html
Linux TROVA file che non corrispondono a un nome
Forse sai che esiste la versione .html di un file, ma non se ne esistono altre. Puoi filtrare la versione .html dalla ricerca utilizzando l'opzione -not .
trova home/nome utente file-esempio* -non nome *.html
Linux TROVA senza risultati di errori
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. Impediamogli di mostrare tutte quelle directory con "Autorizzazione negata". Combinalo con un altro Comando da terminale Linux, grep. Puoi anche utilizzare Trova con grep su trovare file con parole specifiche al loro interno.
find -max Depth 5 -name file-sample.rtf 2>&1 | grep -v “Autorizzazione negata”
Analizziamo 2>&1 .
2 – rappresenta stderrche è l'abbreviazione di output degli errori standard.
1 – rappresenta stdoutche è l'abbreviazione di output standard
> – significa reindirizzare qualunque output si trovi a sinistra verso qualunque cosa si trovi a destra.
& – significa mettere insieme.
Quindi 2>&1 significa prendere gli errori standard e reindirizzarli, quindi metterli insieme all'output standard in un unico output.
Ora esaminiamo | grep -v “Autorizzazione negata” .
| (chiamato pipe) – dice a Linux di alimentare i risultati di ciò che si trova alla sua sinistra con ciò che si trova alla sua destra. Viene inviato al comando grep.
grep – è un'utilità di ricerca testuale.
-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 negata". Pertanto grep ti mostrerà solo i risultati che stai cercando e tutti gli errori che non corrispondono a "Autorizzazione negata".
Linux FIND tramite esempio di autorizzazioni
.Per usarlo bene, devi imparare i permessi di Linux.
I file di esempio hanno tutti i permessi 664, tranne uno con i permessi 775. Usa l'opzione -perm per trovarlo.
trova documenti/ -name file-sample* -type f -perm 775
Linux TROVA per esempio di dimensione
Trovare i file in base alle dimensioni è utile per far sì che file di grandi dimensioni riempiano il tuo disco rigido. Utilizza l'opzione -size, la dimensione desiderata e uno dei seguenti suffissi. Se non viene utilizzato alcun suffisso, -size viene utilizzato per impostazione predefinita su b . Per trovare file uguali o più grandi di una determinata dimensione, metti il segno più (+) davanti alla dimensione.
M – Megabyte
G – Gigabyte
k – Kilobyte
b – blocchi (512 byte – predefinito)
c – byte
w – parole (due byte insieme)
trova -dimensione +500k
TROVA Linux per proprietario
Esistono due modi per trovare i file in base al proprietario. Uno è per il nome utente del proprietario e l'altro è per il gruppo dell'utente. Per effettuare la ricerca in base al nome utente, utilizza l'opzione -user , seguita dal nome utente. Per cercare per gruppo di utenti, utilizza -group seguito dal nome del gruppo..
trova -nome gruppo utente o trova -nome utente utente
TROVA file Linux in base all'ultimo esempio modificato
Per trovare i file che sono stati modificati o modificati negli ultimi X giorni, utilizza -mtime seguito da un numero. Mettendo un segno meno (– ) davanti al numero troverai qualsiasi cosa modificata entro tanti giorni prima di adesso. Un segno più (+ ) significa entro tanti giorni prima di adesso.
find -name “file-sample*” -mtime +5 (maggiore di 5 giorni fa)
find -name “file-sample*” -mtime -5 (meno di 5 giorni fa)
Per trovare l'ultima modifica in minuti, utilizza l'opzione -mmin seguita dal numero di minuti. Utilizza + e - come sopra.
trova -nome “file-esempio*” -mmin -5
trova -name “file-sample*” -mmin +5
Esempio di ricerca di file Linux in base all'orario dell'ultimo accesso
.L'opzione utilizzata per trovare i file in base a quando sono stati aperti l'ultima volta è -atime per i giorni e -amin per i minuti. Seguilo con il numero di giorni o minuti per tornare indietro e utilizza il segno + e - per indicare maggiore e minore.
find -name “file-sample*” -atime -5
trova -nome “file-esempio* -amin -5
Combina TROVA con altri comandi Linux
Qui sopra c'è un esempio di utilizzo di find con il comando grep e puoi usarlo con molti altri. Puoi vedere che l'utilizzo di Trova e altri comandi può essere molto potente e consentire un enorme risparmio di tempo. Immagina di dover eliminare un gruppo di un particolare tipo di file. Invece di cercare in Esplora file, crea semplicemente il comando giusto e il gioco è fatto in pochi secondi. Come utilizzerai ora il comando Trova?
.