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
- Chiediamo al sistema di trovare un file (
-type f
) nella home directory del nostro utente (~
). - Indichiamo al sistema di agire (
-exec
) eseguendogrep
comando per cercare nel contenuto di tutti i file la parola contenuto . - Il
{}
le parentesi indicano i risultati della corrispondenza delfind
comando e sono tra virgolette singole in modo che ilgrep
comando non li interpreta erroneamente. - 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. - 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.