Ofte er det nødvendig å søke etter bestemte filtyper i Linux -miljøer, og vi vet ikke den riktige måten å søke på riktig måte uten å kaste bort tid.
For Linux -distroer er det utviklet en kommando kalt find som er utviklet for å rekursivt filtrere objekter i filsystemet basert på en betinget mekanisme. Med denne finn -kommandoen kan vi søke etter en fil eller katalog i filsystemet.
Hvis vi inkluderer parameteren -exec, kan filene bli funnet og behandlet umiddelbart innenfor den samme kommandoen.
1. Finn filer etter navn eller utvidelse Linux -kommandoer
Vi kan bruke finn fra kommandolinjen for å finne en bestemt fil ved navn eller utvidelse.
Syntaksen er:
finn / home / brukernavn / -navn "* .utvidelse"For eksempel vil vi se etter filer som slutter på .gz:
FORSTØRRE
2. Praktiske kommandoer og syntaks å bruke med å finne Linux -kommandoer
Med finn -kommandoen har vi noen parameteralternativer som:
finne alternativer start / baneuttrykkAlternativet attributt vil kontrollere oppførselen og optimaliseringsmetoden for søkeprosessen. Hjem / bane-attributtet vil definere katalogen på øverste nivå der finn vil begynne å filtrere.
Uttryksattributtet styrer testene som søker i kataloghierarkiet for å produsere utdata.
For eksempel kan vi utføre følgende:
finn -O3 -L / var / www / -navn "* .html"Denne kommandoen muliggjør maksimal optimaliseringsnivå (-O3) og lar deg følge de symbolske koblingene (-L) for å søke i hele katalogtreet på banen / var / www / etter filer som slutter med .html.
FORSTØRRE
3. Alternativer og optimalisering med Find Linux -kommandoer
Findes standardkonfigurasjon for søk vil ignorere de symbolske koblingene (snarveifiler). Hvis vi vil finne å følge og ta de symbolske koblingene, kan vi legge til -L -alternativet til kommandoen som vi så tidligere. Find har tre (3) optimaliseringsnivåer som er -O1, -O2 og -O3.
Optimaliseringen -O1 er standard og tvinger deg til å søke etter filter basert på filnavn før du kjører alle andre tester.
Optimalisering på -O2 -nivå prioriterer filnavnfiltre, som i -O1, og kjører deretter all filtypefiltrering før du fortsetter med andre mer ressurskrevende forhold. Optimering på -O3 -nivå gjør det mulig å finne en dypere optimalisering og omorganisere alle tester basert på deres relative utgif.webpter og sannsynligheten for bedre resultater.
Noen av alternativene er:
Det er et filter basert på det første filnavnet
-O1 (standard)
Bruk filnavnet først og deretter filtypen
-O2
Endre rekkefølge på resultateneTillater søk å automatisk omorganisere søket basert på effektiv bruk av ressurser og sannsynligheten for bedre resultater.
-O3
Søker nåværende katalog, samt alle underkataloger X nivåer dypt
-maksdyp X
Søk uavhengig av tekst
-Jeg navngir
Returnerer bare resultatene som ikke samsvarer med testtilfellet
-ikke
Utfør et filsøk
-type f
Søk i kataloger
-type d
4. Finn filer etter tidsendring Linux -kommandoer
Find -kommandoen har muligheten til å filtrere et kataloghierarki basert på den siste modifikasjonen av filen.
Syntaksen er:
finn / -navn "* conf" -mtime 8 finn / home / user / -name "* conf" -mtime 2Den første kommandoen viser en liste over alle filene i hele filsystemet som slutter med conf -tegn og har blitt endret de siste 8 dagene. Den andre kommandoen filtrerer brukerens hjemmekatalog for filer med navn som slutter med conf -tegn og har blitt endret i de to foregående dagene.
Bruk Grep til å finne innholdsbaserte filer Linux-kommandoerFind -kommandoen kan bare filtrere kataloghierarkiet basert på et filnavn og metadata, så hvis du trenger å søke basert på filinnhold, kan du bruke et verktøy som grep.
Vi bruker følgende syntaks:
finne. -type f -exec grep "eksempel" '{}' \; -skrive utDette finner alle objektene i det nåværende kataloghierarkiet (.) Som er en fil (-type f) og kjører deretter grep-kommandoen "eksempel" for hver fil som oppfyller betingelsene. Matchende filer skrives ut på skjermen (-trykk). Braces ({}) er en plassholder for søkeresultatene. {} Er omsluttet av enkle anførselstegn (') for å unngå at grep gjengir et feilaktig filnavn. Kommandoen -exec avsluttes med et semikolon "(;)", som må unngås "(\;)" for å unngå tolkning av skallet.
Hvordan finne og behandle filer ved hjelp av Find Command Linux -kommandoerVi kan bruke alternativet -exec til å kjøre kommandoer mot alle objekter som samsvarer med søkeuttrykket.
Syntaksen er:
finne. -navn "rc.conf" -exec chmod o + r '{}' \;Dette vil filtrere alle objekter i det nåværende hierarkiet (.) For filer som heter rc.conf og kjøre kommandoen chmod eller + r for å endre tillatelsene til søkeresultatene.
Så finn er en alliert for fullt filsøk på Linux.