40 Migliori esempi di comando Find in Linux

Il comando Linuxfind è un potente strumento che consente agli amministratori di sistema di individuare e gestire file e directory in base a una vasta gamma di criteri di ricerca. Può trovare directory e file con il loro nome, il loro tipo o estensione, dimensione, autorizzazioni, ecc.

Oltre a localizzare file e directory, la combinazione del comandofind con altri consente di agire sui risultati., L’aggiunta dell’opzione-exec consente agli amministratori di sistema di eseguire comandi esterni ed eseguire azioni come copiare, spostare, eliminare o modificare le autorizzazioni dei file corrispondenti ai criteri specificati come dimensione, nome, ecc.

In questo articolo, inizieremo spiegando i comandi di base di Linux find con esempi. Questo ti mostrerà come trovare file e directory. Vi mostreremo quindi come utilizzare l’opzione-exec per agire sui file o sulle directory in base alle loro dimensioni,autorizzazioni, ecc.,

La sintassi generale per il comando find è

find {path} {name -of-file or dir-to-search} {action-to-take}

Dove,

In questo tutorial, spiegheremo come individuare file e directory corrispondenti a modelli specificati. Vedremo anche come eseguire azioni sui file o sulle directory che il comando find individua. La guida è basata su Ubuntu ma è applicabile alla maggior parte delle distribuzioni e versioni Linux.

Trova file e directory

Trova file specifici per nome o estensione

Per cercare un file specifico, eseguire il seguente comando dalla radice ( / )., Il comando contiene il nome esatto del file che si sta cercando.

find . -name file22.txt

Output

./test/file22.txt./sales/file22.txt

Si prega di notare che i risultati includono il percorso. Questo è importante se non si conosce la directory in cui si trova il file o quando si trova in più di un posto.

Puoi anche cercare il file in un’altra directory mentre sei ancora nella posizione corrente. In questo caso, è necessario fornire il percorso per la directory in cui si desidera cercare.,

find ./test -name file22.txt

Alla ricerca di file specifici in un’altra directory

Nel nostro caso, cercheremo tutti quelli che iniziano con il file letters nella directory di test.

find ./test -name file*

Output

./test/file22.txt./test/file30.doc./test/file1.txt./test/file5,doc

Cerca file per estensione

Per trovare un file in Linux con una certa estensione, aggiungilo al comando.,

find . -name *.txt

Output

./test/subtest/subfil.txt./test/file22.txt./test/file1.txt./home1/files32.txt./home2/file22.txt./qa/tags.txt

Trova file e directory per nome

Usa il comando seguente per cercare file e directory che iniziano con le lettere qa. Nel nostro computer, abbiamo i fileqatree.txt eqa.txt e una directory con il nomeqa.,

Se eseguiamo il comando;

find ./ -name "qa*"

Restituisce il seguente output

./test/qatree.pdf./test/qa.txt./home/qa

Il comando restituisce sia i file che le directory corrispondenti ai criteri di ricerca. Per trovare solo file o directory, è necessario specificarlo nel comando.

Trova solo file o directory

Solo per i file, utilizzare l’opzionetype f.

Solo file

find ./ -type f -name "qa*"

Output

./test/qatree.pdf./test/qa.txt

solo directory

Aggiungere l’opzionetype d per individuare solo le directory.,

find ./ -type d -name "qa*"

Output

./home/qa

Comando di ricerca senza maiuscolo/minuscolo

Tutte le ricerche con -name sono case sensitive e non danno risultati con lettere maiuscole. Per ottenere tutti i casi, utilizzare l’opzione-iname.

find ./ -iname "qa*"

Output

./test/qatree.pdf./test/qa.txt./test/QAtest.txt./home/qa

Cerca un file da più directory

Per trovare i file in diverse directory, aggiungi i loro percorsi nel comando., Nel nostro caso, controlleremo le directorytest enumeric.

find ./test ./numeric -name file22.txt -type f

Uscita

./test/file22.txt/root/numeric/file22.txt

Trovare più file con estensioni diverse da tutte le directory

È possibile utilizzare il comando trova per individuare più file che condividono le diverse estensioni come *.doc *.txt *.pdf, etc. Questo può essere fatto separatamente, un’estensione alla volta, o utilizzando un solo comando che include tutte le estensioni desiderate.,

find . -type f ( -name "*.txt" -o -name "*.pdf" -o -name "*.doc" )

output

Trova file contenenti un determinato testo

A volte, si desidera accedere a un file contenente un determinato testo ma non è possibile richiamare il nome o la posizione del file. Questo comando consente di trovare tutti i file contenenti il testo di destinazione.

Per cercare tutti i file contenenti la parola iperconvergenza”, utilizzare;

find / -type f -exec grep -l -i "hyperconvergence" {} ;

Output

/root/numeric/hci/root/HCIP

L’opzione –i consente al comando di ignorare i casi e troverà il testo in maiuscolo o meno, ovvero iperconvergenza , Iperconvergenza, ecc.,

cercare il file in una directory specifica, è sufficiente aggiungere il comando

find ./numeric -type f -exec grep -l -i "hyperconvergence" {} ;

Uscita

./numeric/hci

Trova File e Cartelle in Base alle Dimensioni

È possibile trovare tutti i file o le directory che sono inferiori, pari o superiori a una certa dimensione, all’interno di un certo intervallo o vuoto. Utilizzare il formato formato appropriato a seconda del tipo di file o directory che si sta cercando.,nd file di una certa dimensione – pari a 30MB

Per Cercare di trovare tutti i 30MB file

find / -size 30M

Trova file di dimensione superiore a quella specificata

find -size +2M

Uscita

. /Downloads/ubuntu18043.iso ./.cache/pip/http/6/e/3/8/3/6e38383f41850c3e5705d48116bc52f81b92a80500f414305057 7a9c

Trova file meno di 10MB nella directory corrente

find . -type f -size -10M

Trova file con dimensioni tra i 100-200MB

Durante la ricerca di file all’interno di un determinato intervallo, ad esempio tra i 100 e i 200 MB

find / -size +100M -size -200M

Cercare le directory più di 20kb

find / -type d -size +20k

Trovare svuotare i file e le directory.,

File

find ./ -type f -size 0

o

find ./ -type f –empty

Directory

find ./ -type d –empty

Trova file per fasce di età o data di modifica

Individuare i file più vecchi di n giorni

find /path/ -type f -name '*.txt' -mtime +8

-mtime +8 cerca txt file che sono di età superiore a 8 giorni.,

per data di modifica

Questo look per i file modificati negli ultimi 17 ore

find . -mtime -17 -type f 

Guarda directory modificato negli ultimi 10 giorni

find . -mtime -10 -type d 

Trova il file basati su accesso o la modifica

Individuare i file in base alla data o l’ora di accesso. Ciò consente di visualizzare i file a cui è stato effettuato o meno l’accesso entro un periodo specificato.

Per visualizzare i file a cui non è stato effettuato l’accesso negli ultimi 10 giorni nella directory home.,

find /home -atime +10

i File accessibili esattamente 10 giorni fa,

find /home -atime 10

Accedere negli ultimi 10 giorni

find /home -atime -10

Trovare tutti i file modificati negli ultimi n giorni

È anche possibile cercare il file nel /home directory modificato negli ultimi 10 giorni, utilizzando il comando;

find /home -mtime -10 

Trovare i file modificati entro un determinato periodo di tempo.

Ad esempio, tutti i file modificati tra 6 e 15 giorni fa nella directory home.,

find /home -type f -mtime +6 -mtime -15

File e directory a cui si accede negli ultimi 10 minuti

Per trovare i file a cui si accede negli ultimi 10 minuti, utilizzare l’opzione-amin.

find . -amin -10 -type f

Uscita

./.bash_history./.profileroot@ubuntu1804:~#

Directory accedere negli ultimi 10 minuti

find . -amin -10 -type d

Trovare i file che corrispondono a specifiche autorizzazioni

la Sintassi

$ find -perm mode

Dove è la modalità di autorizzazione che è numerici, ad esempio 644, 655, 700, 777, ecc, o lettere come u=x, a=r+x, etc.,

È possibile specificare la modalità nei seguenti tre modi diversi.

  1. Senza prefisso quando si desidera trovare file con le autorizzazioni esatte specificate.
  2. Con “- ” per i file con almeno il permesso specificato. Questo restituisce i file con le autorizzazioni più elevate specificate e aggiuntive.
  3. L’utilizzo di “” richiede di specificare il proprietario o il gruppo con l’autorizzazione al file.,

Trova file con permessi 777

find -perm 777

Uscita

./file1

Individuare i file con almeno 766
trova -perm -766

Uscita

./file2./file1

Il comando cerca tutti i file in cui l’

  • Il proprietario del file in lettura/scrittura/esecuzione autorizzazioni.
  • Il gruppo ha permessi di lettura/scrittura
  • Altri hanno permessi di lettura/scrittura

In quanto tale, restituisce due file che soddisfano questo criterio: file1 e file2., I file non hanno bisogno di avere le autorizzazioni esatte 766 e possono avere quelle aggiuntive lunghe ma devono avere almeno quelle specificate.

Trova i file scrivibili dal proprietario

Ora useremo “/” per cercare i file scrivibili dal proprietario, dal gruppo o da altri.

find -perm /222../file2./file3./file1

Quanto sopra cerca i file che sono scrivibili dal loro proprietario o gruppo.
Questo restituisce i file che sono scrivibili da entrambi, ma non necessariamente entrambi. Per visualizzare i file, in cui entrambi hanno autorizzazioni scrivibili, utilizzare il prefisso–.,

./file2./file1

Trovare i file di proprietà di un utente

Trovare tutti i file di Jack

find /home -user jack

Uscita

/home/jack/home/jack/examples.desktop/home/jack/.gnupg/home/jack/.gnupg/private-keys-v1.d/home/jack/ans.cgi

Trovare file specifici di proprietà di un utente

Trovare tutti i file di testo di proprietà di Jack

find /home -user jack -iname "*.txt"

Uscita

/home/jack/docs/file32.txt

Trova ed elenca i file e le directory insieme con i loro permessi

find -name "*.conf" | ls -l

Uscita

Trovare e agire sui risultati

In questa sezione, vedremo come è possibile agire sui file che corrispondono al pattern specificato nel comando.,

Trovare i file e modificare le autorizzazioni

Trovare e modificare le autorizzazioni di alcuni tipi di file. Nel nostro caso, lavoreremo con file PHP con autorizzazioni diverse come mostrato di seguito.,

vediamo ora di cercare tutti i file PHP (sopra) e sostituire loro con permessi 755

find ver -name "*.php" -type f -exec chmod 755 {} ;

Il comando cerca file PHP nel ver directory e quindi imposta con il loro consenso 755 (rwxr-xr-x)

Risultati

Trovare e modificare file e le autorizzazioni per la directory

Trova file con permessi 644 e cambiare loro di avere 655 permessi

find . -type f -perm 644 -exec chmod 655 {} ;

È anche possibile cercare le directory con permessi 644 e sostituire questo con 755.,

find . -type d -perm 644

Uscita

./docs 

La cartella documenti è 644 permessi

drwxrwxr-x 2 jack jack 4096 Jan 3 12:45 docs

impostare 755 abbiamo run

find . -type d -perm 644 -exec chmod 755 {} ;

Ora siamo in grado di controllare di nuovo per vedere che cosa esattamente 755

find . -type d -perm 755

Uscita
.
./ docs

Dall’alto possiamo vedere che le directory root e docs hanno i permessi 755.,

Ls –la comando fornisce le seguenti informazioni

drwxr-xr-x 2 jack jack 4096 Jan 3 12:45 docs

Trovare e copiare i file o le directory

Trovare e copiare un file specifico per una directory

Il comando riportato di seguito troverete il file22.txt file e copiarlo ~/tmp/images directory.,

find -iname file22.txt -exec cp {} ~/tmp/images ;

Trova e copia di un tipo di file in una directory

Per trovare i file come immagini con jpg estensione nella directory corrente e copiarli in una posizione diversa, come le immagini di una cartella, utilizzare;

find -iname '*.jpg' -exec cp {} ~/tmp/images ;

in Questo modo, trovare e copiare tutti i file jpg per il ~/tmp/images cartella.

Trova e copia un file in molte directory

Trova e copia un singolo in più directory.,

find ~/tmp/dir1/ ~/tmp/dir2/ $HOME/3/ -maxdepth 0 -exec cp ~/numeric/hci {} ;

Questo troverà il file hci e lo copierà nelle tre directory di/tmp/dir1/ /tmp/dir2/e$HOME/3/

Trova e sposta i file in un’altra directory

Per spostare un file noto da una directory a un’altra., Per spostare il universal.php file;

find ~/folder/ -type f -name universal.php -exec mv {} ~/numeric/ ;

Cercare e spostare i file con una certa estensione in una cartella diversa

find ~/numeric/ -type f -name '*.php' -exec mv {} ~/folder/ ;

Trovare alcuni file e spostare in una specifica cartella diversa

find -type f -name uni*.* -exec mv {} ~/unifiles/ ;

Il comando cerca tutti i file con il nome che inizia con uni e avere qualsiasi estensione. Quindi li sposta nella directory/unifiles/

Trova e sposta i file in base all’età

Trova e sposta i file più vecchi di giorni specificati in una posizione diversa come l’archivio.,

find /path/ -type f -name '*.pdf' -mtime +20 -exec mv {} /backup1/ ;

Questo cercherà i file pdf più vecchi di 20 giorni e li sposterà nella directory backup1.,file e directory

La sintassi per la ricerca e la rimozione di file o directory, la directory corrente è

find . -type f -name "file to delete" -exec rm -f {} ; per eliminare solo i file o

find . -type d -name "dir-to-delete" -exec rm -rf {} ; per eliminare solo le directory

Trova ed elimina i file specifici solo

Per trovare ed eliminare i file che iniziano con til, utilizzare;

find . -type f -name "til*" -exec rm {} ; 

Per trovare e cancellare le directory a partire til

find . -type d -name "til*" -exec rm {} ;

Rimuovere entrambi i file e le directory

find . -name "til*" -exec rm -rf {} ; 

in Questo modo, rimuovere entrambi i file e le directory che iniziano con le lettere til.,

Elimina per estensione

Di seguito è riportato come è possibile individuare ed eliminare tutti i filetxt nella directory corrente. Sostituire txtcon un’altra estensione come bak, pdf o qualsiasi altro che si desidera rimuovere.

find . -type f -name "*.txt" -exec rm -f {} ;

Nel caso in cui si desideri che il sistema richieda di confermare prima di eliminare ogni file, aggiungere l’opzione-i come di seguito.,

find . -type f -name "*.txt" -exec rm -i {} ;

Output

Per impostazione predefinita, -rmnon rimuoverà le directory ed è necessario utilizzare l’opzione –r per garantire una rimozione ricorsiva. Ciò garantisce la cancellazione delle directory vuote e di quelle contenenti file. L’opzione-f forza la rimozione e viene utilizzata sia per i file che per le directory.

Trova ed elimina file più vecchi di n giorni

Trova ed elimina i file di backup più vecchi di 20 giorni dalla directory corrente.,

find . -type f -name '*.bak' -mtime +20 -exec rm {} ;

Questo cancellerà tutti i file .bak più vecchi di 20 giorni.

Trova ed elimina solo le directory

Per eliminare una directory chiamatadir22

find . -type d -name dir22 -exec rm -rf {} ;

Assicurati di corrispondere al caso del nome della directory o usa l’opzione-iname.

find . -type d -iname Dir22 -exec rm -rf {} ;

Rimuove sia Dir22edir22

Per confermare prima della cancellazione, utilizzare l’opzione-i.

find . -type d -iname Dir22 -exec rm -rf -i {} ;

Uscita
rm: rimuovi directory ‘./ Dir22′?, n
rm: rimuovi directory’./ dir22′? y

Nel nostro caso, abbiamo digitato nper la directory Dir22che non verrà eliminata e yper la dir22 che verrà ora rimossa.

Trovare e rimuovere i file vuoti

È possibile utilizzare uno dei seguenti comandi per individuare i file vuoti ed eliminarli automaticamente.

find ./ -type f -size 0 -exec rm -f {} ;

o
trova ./ – tipo f-dimensione 0 / xargs rm-f
o
trova .,/ – type f-size 0-delete

Find and remove empty directories

Per rimuovere le directory vuote useremo l’opzioned.

find ./ -type d -empty -exec rmdir {} ;

Un’altra alternativa è usare delete invece di remove.

find ./ -type d -empty -delete

Si prega di notare che l’eliminazione di sistema o file critici dal computer può danneggiare il sistema operativo o le applicazioni o portare alla perdita dei dati importanti.

Per evitare eliminazioni accidentali, è consigliabile utilizzare un account utente non root., Inoltre, assicurarsi che si sta eliminando i file giusti che non sono utili e che si dispone di un backup di tutti i file di dati per ogni evenienza.

Quali sono le prospettive?

Vai avanti e prova i comandi di Linux find sopra nel tuo ambiente di laboratorio o NON PRODUZIONE. Vedere se è possibile utilizzare alcuni per automatizzare la pulizia del file system con Crontab. E, per padroneggiare Linux, dai un’occhiata a questo corso online.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Vai alla barra degli strumenti