Hvordan bruke Linux find Command for å finne filer

I dette innlegget vil vi se på linux find kommando og hvordan du søker og finner filer med forskjellige attributter.



Linux finn kommando

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:

Søker etter en fil etter navn

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

Søker etter en bestemt fil i en katalog

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


Finn filer etter utvidelse

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

Finn filer eller kataloger med bestemte navn

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

Finn filer i flere kataloger

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

Finn filer som inneholder en bestemt tekst

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.


Finn filer etter størrelse

Vi kan til og med finne filer i forskjellige størrelser. Størrelsesalternativer er:

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

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

Finn og slett bestemte filer

For å finne og slette bestemte filer vi bruker:

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

Konklusjon

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.