I dette indlæg vil vi se på linux find
kommando og hvordan man søger og finder filer med forskellige attributter.
Linux find
kommando er et indbygget kraftfuldt værktøj, der kan bruges til at lokalisere og administrere filer og mapper baseret på en bred vifte af søgekriterier.
For eksempel kan vi finde filer efter deres navn, udvidelse, størrelse, tilladelser osv. Vi kan også bruge find
kommando til at søge efter en bestemt tekst i en fil, som vi ikke kender navnet på.
Lad os se noget brug af find
kommando med eksempler:
Hvis du kender navnet på en fil, men ikke kan huske det bibliotek, den er i, kan du bruge følgende kommando fra rodmappen:
find . -name sales.csv
Prøveoutput:
./accounts/sales.csv
Hvis du vil søge efter specifikke filer i et bibliotek, kan vi bruge:
find ./test -name testCases*
Prøveoutput:
./test/testCases10.txt ./test/testCasesPassed.txt ./test/testCasesFailed.log
I ovenstående tilfælde søger vi kun i './test' -mappen.
For at søge og finde filer efter en bestemt udvidelse bruger vi:
find . -name *.jpg
Prøveoutput:
./test/results/failedTests.jpg ./test/project.jpg ./home/profile_pic.jpg ./tmp/cute-cats.jpg
For kun at finde filer skal vi bruge -f
mulighed:
find ./ -type f -name 'results*'
Prøveoutput:
./test/results_latest.log ./test/results_archive.pdf
For kun at finde mapper skal vi bruge -d
mulighed:
find ./ -type d -name 'results*'
Prøveoutput:
./test/results
Hvis du vil søge og liste alle filer med et givet navn i flere mapper, kan du enten starte søgningen i rodmappen, eller hvis du kender mapperne, kan du angive dem.
Eksempel:
find ./test ./logs -name failed*.* -type f
Prøveoutput:
./test/failed_tests.txt ./logs/failed_tests.log
Nogle gange vil du finde en fil, og du kender ikke dens navn, men du ved, at den har en bestemt tekst inde i den.
Du kan bruge:
find ./test -type f -exec grep -l -i 'login_scenarios' {} ;
Her er -i
mulighed bruges til at ignorere store og små bogstaver, så Login_Scenarios og login_scenarios findes begge.
Vi kan endda finde filer i forskellige størrelser. Størrelsesindstillinger er:
c
bytesk
kilobyteM
MegabyteG
GigabyteFor eksempel for at finde filer i den nøjagtige størrelse, vi bruger:
find / -size 10M
Og for at finde filer, der er større end en bestemt størrelse, bruger vi:
find ./test -size +2M
Ovenstående finder alle de filer, der er større end 2 MB i mappen ./test.
For at finde og slette specifikke filer, vi bruger:
find . -type f -name 'temp*' -exec rm {} ;
I denne artikel lærte du om, hvordan du bruger kommandoen linux find til at søge efter filer baseret på navn, udvidelse, størrelse og type.