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
-
optionsattributt styrer atferd og optimalisering av metoden avfindprosessen., -
starting/pathattributtet definerer øverste nivå katalogen derfindbegynner filtrering. -
expressionattributt 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-execalternativet, kan du generere en lignende produksjon eksemplet ovenfor ved å brukexargskommando: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: