In questo post esamineremo il find
di Linux comando e come cercare e trovare file con attributi diversi.
Comando trova Linux
Il find
di Linux command è un potente strumento integrato che può essere utilizzato per individuare e gestire file e directory in base a un'ampia gamma di criteri di ricerca.
Ad esempio, possiamo trovare i file in base al loro nome, estensione, dimensione, autorizzazioni, ecc. Possiamo anche utilizzare il find
comando per cercare un testo particolare all'interno di un file di cui non conosciamo il nome.
Vediamo un po' di utilizzo del find
comando con esempi:
Ricerca di un file per nome
Se conosci il nome di un file ma non ricordi la directory in cui si trova, puoi utilizzare il seguente comando dalla directory principale:
find . -name sales.csv
Esempio di output:
./accounts/sales.csv
Ricerca di un file specifico in una directory
Se desideri cercare file specifici in una directory, possiamo utilizzare:
find ./test -name testCases*
Esempio di output:
./test/testCases10.txt
./test/testCasesPassed.txt
./test/testCasesFailed.log
Nel caso precedente, stiamo solo cercando all'interno della directory “./test”.
Trova i file per estensione
Per cercare e trovare file con una determinata estensione utilizziamo:
find . -name *.jpg
Esempio di output:
./test/results/failedTests.jpg
./test/project.jpg
./home/profile_pic.jpg
./tmp/cute-cats.jpg
Trova file o directory con determinati nomi
Per trovare solo i file, dobbiamo usare il -f
opzione:
find ./ -type f -name "results*"
Esempio di output:
./test/results_latest.log
./test/results_archive.pdf
Per trovare solo le directory, dobbiamo usare il -d
opzione:
find ./ -type d -name "results*"
Esempio di output:
./test/results
Trova file in più directory
Se desideri cercare ed elencare tutti i file con un determinato nome in più directory, puoi iniziare la ricerca dalla cartella principale oppure, se conosci le directory, puoi specificarle.
Esempio:
find ./test ./logs -name failed*.* -type f
Esempio di output:
./test/failed_tests.txt
./logs/failed_tests.log
Trova file contenenti un determinato testo
A volte vuoi trovare un file di cui non conosci il nome, ma sai che contiene un certo testo.
Puoi usare:
find ./test -type f -exec grep -l -i "login_scenarios" {} ;
Qui, il -i
l'opzione viene utilizzata per ignorare maiuscole e minuscole, quindi Login_Scenarios e login_scenarios verranno trovati entrambi.
Trova i file per dimensione
Possiamo anche trovare file di dimensioni diverse. Le opzioni di dimensione sono:
c
bytek
kilobyteM
MegabyteG
Gigabyte
Ad esempio, per trovare file di una dimensione esatta utilizziamo:
find / -size 10M
E per trovare file di dimensioni maggiori di una certa dimensione, utilizziamo:
find ./test -size +2M
Quanto sopra troverà tutti i file che sono maggiori di 2 MB nella cartella ./test.
Trova ed elimina file specifici
Per trovare ed eliminare file specifici utilizziamo:
find . -type f -name "temp*" -exec rm {} ;
Conclusione
In questo articolo hai imparato come usare il comando linux find per cercare i file in base a nome, estensione, dimensione e tipo.