I dette innlegget vil vi se på linux find
kommando og hvordan du søker og finner filer med forskjellige attributter.
Linux find
kommando er et innebygd kraftig verktøy som kan brukes til å finne og administrere filer og kataloger basert på et bredt spekter av søkekriterier.
For eksempel kan vi finne filer etter navn, utvidelse, størrelse, tillatelser osv. Vi kan også bruke find
kommando for å søke etter en bestemt tekst i en fil som vi ikke vet navnet på.
La oss se litt bruk av find
kommando med eksempler:
Hvis du vet navnet på en fil, men ikke husker katalogen den er i, kan du bruke følgende kommando fra rotkatalogen:
find . -name sales.csv
Eksempel på utdata:
./accounts/sales.csv
Hvis du vil søke etter bestemte filer i en katalog, kan vi bruke:
find ./test -name testCases*
Eksempel på utdata:
./test/testCases10.txt ./test/testCasesPassed.txt ./test/testCasesFailed.log
I ovennevnte tilfelle søker vi bare i katalogen “./test”.
For å søke og finne filer etter en bestemt utvidelse bruker vi:
find . -name *.jpg
Eksempel på utdata:
./test/results/failedTests.jpg ./test/project.jpg ./home/profile_pic.jpg ./tmp/cute-cats.jpg
For å finne bare filer, må vi bruke -f
alternativ:
find ./ -type f -name 'results*'
Eksempel på utdata:
./test/results_latest.log ./test/results_archive.pdf
For å finne bare kataloger, må vi bruke -d
alternativ:
find ./ -type d -name 'results*'
Eksempel på utdata:
./test/results
Hvis du vil søke og liste opp alle filer med et gitt navn i flere kataloger, kan du enten starte søket i rotmappen, eller hvis du kjenner katalogene, kan du spesifisere dem.
Eksempel:
find ./test ./logs -name failed*.* -type f
Eksempel på utdata:
./test/failed_tests.txt ./logs/failed_tests.log
Noen ganger vil du finne en fil, og du vet ikke navnet, men du vet at den har en viss tekst i seg.
Du kan bruke:
find ./test -type f -exec grep -l -i 'login_scenarios' {} ;
Her, -i
alternativet brukes til å ignorere store og små bokstaver, så Login_Scenarios og login_scenarios vil begge bli funnet.
Vi kan til og med finne filer i forskjellige størrelser. Størrelsesalternativer er:
c
bytek
kilobyteM
MegabyteG
GigabyteFor eksempel for å finne filer i nøyaktig størrelse vi bruker:
find / -size 10M
Og for å finne filer som er større enn en viss størrelse, bruker vi:
find ./test -size +2M
Ovennevnte finner alle filene som er større enn 2 MB i ./test-mappen.
For å finne og slette bestemte filer vi bruker:
find . -type f -name 'temp*' -exec rm {} ;
I denne artikkelen lærte du hvordan du bruker kommandoen linux find for å søke etter filer basert på navn, utvidelse, størrelse og type.