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 avfind
prosessen., -
starting/path
attributtet definerer øverste nivå katalogen derfind
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 å brukexargs
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: