find er en kommando til rekursivt filtrering af objekter i filsystemet baseret på en simpel betinget mekanisme. Brug find for at søge efter en fil eller mappe på dit filsystem. Ved hjælp af -exec flag, kan filer findes og med det samme behandles inden for 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øger efter *.err filer i /home/username/ mappen og alle undermapper:
find /home/username/ -name "*.err"
Du bør se en lignende output i konsollen:
/home/username/example.errThe matching file in the /home/username/ directory is "example.err"
den Fælles Linux Finde Kommandoer og-Syntaks
find kommando normalt tager følgende form:
find options starting/path expression
-
optionsattribut styrer adfærd og optimering af metodefindproces., -
starting/pathattributten definerer mappen på øverste niveau, hvorfindbegynder at filtrere. -
expressionattributten styrer de tests, der søger i kataloghierarkiet for at producere output.
Find en fil i Linu.ved hjælp af filnavnet
Hvis du vil finde en fil ved hjælp af filnavnet, skal du bruge syntaksen find -name filename. Udelade stien søger efter filen over hele disken., For eksempel, du kan finde en fil med navnet example.err i /home/username mappe med følgende kommando:
find -name example.err
Du bør se en lignende output:
./username/example.err
Find en Fil i den Aktuelle Mappe ved Hjælp af Kommandoen søg efter
Tag et kig på eksemplet, mappestruktur og filer. De henvises til i hele denne vejledning eksempler.,ønsker at finde den fil example.err i biblioteket eller en af dens undermapper, kan du udføre følgende kommando:
find . -name example.err
Dit output ligner følgende:
./example.err./directory_1/example.err
output afspejler directory_1 directory-struktur:
├── directory_1│ ├── subdirectory_1│ │ └── example.err│ └── example.err
Find Billede Filer i Linux ved Hjælp af kommandolinjen
der Henvises til fil strukturen i forrige afsnit, at der er et billede, der hedder image01.png, som ligger i roden (/)s af mappestruktur.,
for At finde den fil image01.png, skal du køre følgende find kommando, som lokaliserer alle .png filer, der er gemt inde i / bibliotek.
find -name *.png
Du bør se et lignende resultat:
./image01.png
Ændre billedets filtype, og kig efter eventuelle .jpg filer i rodmappen (/):
find -name *.jpg
output ligner eksempel., Se eksemplet mappestruktur i det foregående afsnit for at se filens placering.
./web_files/unnamed.jpg
Find en Tom Fil i Mappen ved Hjælp af kommandolinjen
for At finde en tom fil i mappen ved hjælp af kommandolinjen, skal du udføre følgende kommando:
find . -type f -empty
Hvis ingen output er vendt tilbage, så der er ikke en tom fil i den aktuelle mappe.
Indstillinger og optimeringer til at finde filer i Linu.ved hjælp af kommandolinjen
standardkonfigurationen forfind ignoressymbolske links., Hvis du ønsker find for at følge og vende tilbage symbolske links, tilføje -L indstilling til den kommando, som vist nedenfor:
find -O3 -L /var/www/ -name "*.html"
Denne kommando giver maksimal optimering niveau (-O3) og giver mulighed find for at følg symbolske links (-L). find søger på hele træet under /var/www/ efter filer, der ender med .html.,
find optimerer sin filtreringsstrategi for at øge ydeevnen. Tre kan vælges af brugeren optimering niveauer er angivet som -O1 -O2 og -O3. -O1 optimering er standard og tvinger find til at filtrere baseret på filnavn, før du kører alle andre tests.,
Optimering i -O2 niveau prioriterer filnavn filtre, som i -O1, og derefter løber alle fil-type filtrering, før du fortsætter med andre og mere ressourcekrævende betingelser. Niveau -O3 optimering tillader find at udføre den mest alvorlige optimering og ombestille alle test baseret på deres relative udgift og sandsynligheden for deres succes.,
| Command | Description |
|---|---|
-O1 |
Filter based on filename first (default). |
-O2 |
File name first, then file-type., |
-O3 |
Tillad find til automatisk re-order søgning baseret på effektiv udnyttelse af ressourcer og sandsynlighed. succes |
-maxdepth X |
Søg aktuelle bibliotek, samt alle sub-mapper X niveauer dybe. |
-iname |
Søg uden hensyn til store og små bogstaver., |
-not |
Return only results that do not match the test case. |
-type f |
Search for files. |
-type d |
Search for directories., |
Find Filer i Linux ved Ændring af Tid ved Hjælp af kommandolinjen
find kommando kan filtrere en mappe hierarki baseret på, hvornår en fil blev sidst opdateret., For eksempel følgende kommando finder en fil med .err udvidelse, som blev ændret inden for de sidste 7 dage:
find / -name "*err" -mtime -7
eksempel kommando returnerer følgende output:
du Bruge Grep til at Finde Filer i Linux ved Hjælp af kommandolinjen
find kommando er kun i stand til at filtrere mappe hierarki baseret på filens navn og metadata. Hvis du har brug for at søge baseret på indholdet af filen, skal du bruge et værktøj somgrep., Overvej det følgende eksempel:
find . -type f -exec grep "test" '{}' \; -print
Denne kommando søgninger hvert objekt i den aktuelle mappe hierarki (.), som er en fil (-type f), og derefter kører kommandoen grep "test" for hver fil, der opfylder betingelserne. De filer, der matcher, udskrives på skærmen (-print). De krøllede seler ({}) er en pladsholder for find-kampresultaterne., {} er vedlagt i enkelt citater (') for at undgå at aflevere grep et misdannet filnavn. -exec kommando afsluttes med et semikolon (;), som bør blive undgået (\;) til at undgå fortolkning af skallen.
filen, der bruges i eksemplet (example.err) har tekst inde i den, der siger “test”., Når du kører kommandoen eksempel, ser du et lignende output:
Grep identificerede hver fil i den aktuelle arbejdsmappe, der indeholder strengen “test”.,
Bemærk
Før
findkommando ‘ s gennemførelse af-execindstilling, du kunne generere en tilsvarende output til eksemplet ovenfor brugerxargskommando:find . -type f -print | xargs grep "test"
Proces og Finde Filer ved Hjælp af Kommandoen søg i Linux
-exec option kører kommandoer mod hvert objekt, der matcher find udtryk., Overvej det følgende eksempel:
find . -name "example.err" -exec chmod o+r '{}' \;
Denne filtre hvert objekt i det aktuelle hierarki (.) for filer, der er navngivet rc.conf og kører chmod o+r kommando til at ændre filrettigheder af find kommandoens resultater.
kommandoen eksempel kører og udfører -execi rodmappen til find proces. Brug -execdir til at udføre den angivne kommando i den mappe, hvor kampen er placeret., Dette kan afhjælpe sikkerhedsmæssige bekymringer og producere bedre ydeevne for nogle operationer.
-execeller-execdir indstillinger kører uden yderligere prompter. Hvis du foretrækker at blive spurgt, før der gribes til handling, og udskift -exec med -ok eller -execdir med -okdir.
Sådan finder og sletter du filer ved hjælp af Linu. – kommandolinjen
forsigtig
Brug denne indstilling med ekstrem forsigtighed.,
Tilføj indstillingen-delete til slutningen af et matchudtryk for at slette alle filer, der matcher. Brug denne indstilling, når du er sikker på, at resultaterne kun matcher de filer, du vil slette.
I eksemplet nedenfor, find rekursivt lokaliserer alle filer i hierarkiet fra den aktuelle mappe og sletter alle filer, der ender med .err extension:
find . -name "*.err" -delete
har Stadig et par spørgsmål?,
Deltag i vores Community og send dine spørgsmål til andre Linode-og Linu. – entusiaster for at hjælpe dig.
relaterede spørgsmål: