Sådan bruges Linux Find Command til at finde filer

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

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:

Søger efter en fil efter navn

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

Søger efter en bestemt fil i et bibliotek

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.


Find filer efter udvidelse

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

Find filer eller mapper med bestemte navne

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

Find filer i flere kataloger

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

Find filer, der indeholder en bestemt tekst

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.


Find filer efter størrelse

Vi kan endda finde filer i forskellige størrelser. Størrelsesindstillinger er:

  • c bytes
  • k kilobyte
  • M Megabyte
  • G Gigabyte

For 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.

Find og slet specifikke filer

For at finde og slette specifikke filer, vi bruger:

find . -type f -name 'temp*' -exec rm {} ;

Konklusion

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.