Sådan finder du filer i Linu.ved hjælp af kommandolinjen

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 metode find proces.,
  • starting/path attributten definerer mappen på øverste niveau, hvor find 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 bruger xargs 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 -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:

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *