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
-
options
attribut styrer adfærd og optimering af metodefind
proces., -
starting/path
attributten definerer mappen på øverste niveau, hvorfind
begynder at filtrere. -
expression
attributten 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
find
kommando ‘ s gennemførelse af-exec
indstilling, du kunne generere en tilsvarende output til eksemplet ovenfor brugerxargs
kommando: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 -exec
i 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.
-exec
eller-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: