Hvordan å Finne Filer i Linux ved Hjelp av Kommando-Linjen

find er en kommando for undermapper filtrering objekter i den file system basert på en enkel betinget mekanisme. Bruk find for å søke etter en fil eller katalog i filsystemet. Ved hjelp av -exec flagg, filer kan bli funnet og immediatelyprocessed innenfor samme kommando.,

Find Linux Files by Name or Extension

Use find from the command line to locate a specific file by name or extension., Følgende eksempel søker etter *.err filer i /home/username/ katalogen og alle underkataloger:

find /home/username/ -name "*.err"

Du bør se en lignende produksjon i konsollen:

 /home/username/example.errThe matching file in the /home/username/ directory is "example.err"

Vanlige Linux Finne Kommandoer og Syntaks

find kommando vanligvis tar følgende form:

find options starting/path expression
  • options attributt styrer atferd og optimalisering av metoden av find prosessen.,
  • starting/path attributtet definerer øverste nivå katalogen der find begynner filtrering.
  • expression attributt styrer tester for å søke i katalogen hierarki for å produsere et resultat.

Finn en Fil i Linux ved Hjelp av Filnavn

for Å finne en fil ved hjelp av filnavn, bruker du syntaksen find -name filename. Utelating av banen søk etter filen over hele disken., For eksempel, kan du finne en fil som heter example.err i /home/username – katalogen med følgende kommando:

find -name example.err

Du bør se en lignende effekt:

 ./username/example.err

Finn en Fil i Gjeldende Mappe ved Hjelp av Kommandoen Finn

Ta en titt på eksemplet katalog struktur og filer. De er omtalt i denne håndboken, er eksempler.,ønsker du å finne filen. example.err i katalogen eller noen av dens undermapper, kan du sende inn følgende kommando:

find . -name example.err

Din utgang ligner på følgende:

 ./example.err./directory_1/example.err

output reflekterer directory_1 katalog struktur:

 ├── directory_1│ ├── subdirectory_1│ │ └── example.err│ └── example.err

Finn Bildet Filer i Linux ved Hjelp av kommandolinjen

Referere til fil-struktur i forrige avsnitt, er det et bilde som heter image01.png som ligger i roten (/)s av katalogstrukturen.,

for Å finne filen. image01.png kjør følgende find kommando som finner alle .png filer som er lagret i / – katalogen.

find -name *.png

Du bør se en lignende effekt:

 ./image01.png

du vil Endre bildet som filtype, og se etter en .jpg filer i rotmappen (/):

find -name *.jpg

output ligner eksempel., Se eksempel på katalogstruktur i forrige avsnitt for å vise plasseringen til filen.

 ./web_files/unnamed.jpg

Finn en Tom Fil i Katalogen ved Hjelp av kommandolinjen

for Å finne en tom fil i katalogen ved hjelp av kommandolinjen, utfør følgende kommando:

find . -type f -empty

Hvis ingen utdata blir returnert, så det er ikke en tom fil i gjeldende mappe.

Valg og Optimaliseringer for å Finne Filer i Linux ved Hjelp av kommandolinjen

standard konfigurasjon for find ignoressymbolic lenker., Hvis du vil find for å følge og retur symbolske koblinger, legge til -L alternativ til kommando, som vist nedenfor:

find -O3 -L /var/www/ -name "*.html"

Denne kommandoen gjør det mulig maksimal optimalisering nivå (-O3) og lar find for å symlink følg symbolske koblinger (-L). find søk hele katalogen trær under /var/www/ for filer som slutter med .html.,

find optimaliserer sin filtrering strategi for å øke ytelsen. Tre valgbare optimalisering nivåene er angitt som -O1, -O2, og -O3. -O1 optimalisering er standard og styrker find for å filtrere basert på filnavn før det kjører alle andre tester.,

Optimalisering på -O2 nivå prioriterer filnavn filtre, som i -O1, og deretter går alle fil-type filtrering før du fortsetter med andre mer ressurskrevende forhold. Nivå -O3 optimalisering lar find for å utføre de mest alvorlige optimalisering og utføre endringer alle tester basert på deres relative kostnader og sannsynligheten for deres suksess.,

Command Description
-O1 Filter based on filename first (default).
-O2 File name first, then file-type.,
-O3 Tillat find for å automatisk re-order søk basert på effektiv bruk av ressurser og sannsynlighet. suksess
-maxdepth X Søk gjeldende katalog, samt alle sub-kataloger X nivåer dypt.
-iname Søk uten hensyn til tekst saken.,
-not Return only results that do not match the test case.
-type f Search for files.
-type d Search for directories.,

Finn Filer i Linux ved å forandre Tiden ved Hjelp av kommandolinjen

find – kommandoen kan filtrere en mappe hierarki basert på når filen sist ble endret., For eksempel, følgende kommando finner noen fil med .err extension som ble endret i de siste 7 dager:

find / -name "*err" -mtime -7

eksempel kommandoen returnerer følgende resultat:

Bruke Grep for å Finne Filer i Linux ved Hjelp av kommandolinjen

find – kommandoen er bare i stand til å filtrere katalog hierarki basert på en fil med navn og metadata. Hvis du trenger å søke basert på innholdet av filen, kan du bruke et verktøy likegrep., Tenk deg følgende eksempel:

find . -type f -exec grep "test" '{}' \; -print

Denne kommandoen søker hvert objekt i gjeldende mappe-hierarkiet (.) som er en fil (-type f) og trykk deretter kjører kommandoen grep "test" for hver fil som tilfredsstiller vilkårene. Filer som samsvarer skrives ut på skjermen (-print). Den krøllparentes ({}) er en plassholder for å finne match resultater., {} skal stå i enkle anførselstegn (') for å unngå å overlate grep en feil filnavn. -exec – kommandoen er avsluttet med et semikolon (;), som skal beskyttes (\;) for å unngå tolkning av skallet.

I filen som brukes i eksempel (example.err) har teksten på innsiden av det som står «test»., Når du kjører eksempel kommandoen, kan du se en lignende effekt:

Grep identifisert hver fil i gjeldende arbeidsmappe som inneholder strengen «test».,

Obs!

Før find – kommandoen i implementeringen av -exec alternativet, kan du generere en lignende produksjon eksemplet ovenfor ved å bruke xargs kommando:

find . -type f -print | xargs grep "test"

– Prosessen og Finne Filer ved Hjelp av Kommandoen Finn i Linux

-exec alternativet kjører kommandoer mot ethvert objekt som matcher find uttrykk., Tenk deg følgende eksempel:

find . -name "example.err" -exec chmod o+r '{}' \;

Dette filtre alle objektene i den aktuelle hierarki (.) for filer som heter rc.conf og kjører chmod o+r – kommandoen til å endre tillatelsene for filen find kommando resultater.

eksempel kommandoen kjører og kjører -exec alternativ i rotkatalogen på find prosessen. Bruk -execdir for å utføre den angitte kommandoen i katalogen der kampen bor., Dette kan lindre sikkerhet bekymringer og produsere bedre resultater for enkelte operasjoner.

-exec eller -execdir valg kjøre uten videre ber. Hvis du foretrekker å bli spurt før tiltak iverksettes, bytt -exec med -ok eller -execdir med -okdir.

Hvordan å Finne og Slette Filer ved Hjelp av Linux Command Line

Advarsel

Bruk dette alternativet sammen med ekstrem forsiktighet.,

Legg til valget -delete til slutten av en kamp uttrykk for å slette alle filer som samsvarer. Bruk dette alternativet når du er sikker på at resultatene bare matche filene som du ønsker å slette.

I eksempelet nedenfor, find undermapper finner alle filene i hierarkiet starter på den gjeldende katalogen, og sletter alle filer som slutter med .err extension:

find . -name "*.err" -delete

har Fortsatt noen spørsmål?,

Bli med i vårt Fellesskap og legge inn dine spørsmål til andre Linode og Linux-entusiaster for å hjelpe deg ut.

Relaterte Spørsmål:

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *