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
findda dove iniziare a cercare il termine di ricerca. - Espressione – Dice a
findquale 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
findcomando. 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) eseguendogrepcomando per cercare nel contenuto di tutti i file la parola contenuto . - Il
{}le parentesi indicano i risultati della corrispondenza delfindcomando e sono tra virgolette singole in modo che ilgrepcomando non li interpreta erroneamente. - Stiamo chiudendo il
grepcomando 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
–printopzione 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.
–PQuesta opzione rappresenta il comportamento predefinito. Il sistema non segue collegamenti simbolici.-HIl sistema non segue collegamenti simbolici se non durante l'elaborazione di questo specifico comando.-LSegue 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.