40 Bedste Eksempler på Find-kommando i Linux

Linux find kommando er et kraftfuldt værktøj, der gør det muligt for systemadministratorer til at finde og administrere filer og mapper, der er baseret på en bred vifte af søgekriterier. Det kan finde mapper og filer efter deres navn, deres type eller udvidelse, størrelse, tilladelser osv.

udover at finde filer og mapper, kan du kombinere kommandoen find med andre, så du kan handle på resultaterne., Tilføje -exec option gør det muligt for systemadministratorer at køre eksterne kommandoer og udføre handlinger såsom kopiering, flytning, sletning eller ændring af rettigheder på filer, der matcher de angivne kriterier såsom størrelse, navn, osv.

i denne artikel starter vi med at forklare de grundlæggende Linu.find-kommandoer med eksempler. Dette viser dig, hvordan du finder filer og mapper. Vi viser dig derefter, hvordan du bruger -exec mulighed for at handle på filerne eller mapperne baseret på deres størrelse, tilladelser osv.,

den generelle syntaks for find-kommandoen er

find {path} {name -of-file or dir-to-search} {action-to-take}

hvor,

i denne tutorial vil vi forklare, hvordan du finder filer og mapper, der matcher specificerede mønstre. Vi vil også se, hvordan du udfører handlinger på de filer eller mapper, som find-kommandoen finder. Guiden er baseret på Ubuntu, men gælder for de fleste Linu. – distributioner og versioner.

Find filer og Mapper

Find bestemte filer efter navn eller lokalnummer

for At søge efter en bestemt fil, skal du køre følgende kommando fra root (/)., Kommandoen indeholder det nøjagtige navn på den fil, du søger efter.

find . -name file22.txt

Output

./test/file22.txt./sales/file22.txt

bemærk, at resultaterne inkluderer stien. Dette er vigtigt, hvis du ikke kender den mappe, hvor filen er placeret, eller når den er på mere end .t sted.

Du kan også søge efter filen i en anden mappe, mens den stadig er på den aktuelle placering. I dette tilfælde skal du angive stien til det bibliotek, hvor du vil søge.,

find ./test -name file22.txt

Leder du efter specifikke filer i et andet bibliotek

i vores tilfælde vil vi kigge efter alle dem, der starter med bogstavfilen i testmappen.

find ./test -name file*

Output

./test/file22.txt./test/file30.doc./test/file1.txt./test/file5,doc

Søg efter filer med filtypenavnet

for At finde en fil i Linux med en vis udvidelse, kan du føje den til kommandoen.,

find . -name *.txt

Output

./test/subtest/subfil.txt./test/file22.txt./test/file1.txt./home1/files32.txt./home2/file22.txt./qa/tags.txt

Find filer og mapper efter navn

Brug nedenstående kommando for at søge efter filer og mapper, der starter med de pågældende bogstaver qa. I vores computer, er vi nødt qatree.txt og qa.txt filer, samt en mappe ved navn qa.,

Hvis vi køre kommandoen;

find ./ -name "qa*"

Det giver følgende output

./test/qatree.pdf./test/qa.txt./home/qa

kommandoen returnerer både filer og mapper, der matcher dine søgekriterier. For kun at finde filer eller mapper skal du angive dette i kommandoen.

Find kun filer eller mapper

kun for filer skal du bruge knappen type f.

Filer

find ./ -type f -name "qa*"

Output

./test/qatree.pdf./test/qa.txt

Kataloger kun

Tilføj type d mulighed for at finde mapper, kun.,

find ./ -type d -name "qa*"

Output

./home/qa

mellem store og små bogstaver find-kommando

Alle søgninger med -name skifte mellem store og små bogstaver, og vil ikke give resultater med store bogstaver. For at få alle tilfælde skal du bruge indstillingen -iname.

find ./ -iname "qa*"

Output

./test/qatree.pdf./test/qa.txt./test/QAtest.txt./home/qa

Søg efter en fil fra flere mapper

for At finde de filer i forskellige mapper, tilføje deres stier i kommandoen., I vores tilfælde tjekker vi katalogerne test og numeric.

find ./test ./numeric -name file22.txt -type f

Output

./test/file22.txt/root/numeric/file22.txt

Find flere filer med forskellige udvidelser fra alle mapper

Du kan bruge kommandoen søg til at finde flere filer, der deler de forskellige udvidelser, som f.eks. *.doc *.txt *.pdf osv. Dette kan gøres separat, en udvidelse ad gangen eller ved hjælp af kun en kommando, der indeholder alle de ønskede udvidelser.,

find . -type f ( -name "*.txt" -o -name "*.pdf" -o -name "*.doc" )

output

Find filer, der indeholder bestemt tekst

Nogle gange vil du have adgang til en fil, der indeholder bestemt tekst, men kan ikke huske dens filnavn eller placering. Denne kommando giver dig mulighed for at finde alle de filer, der indeholder din måltekst.

for At søge efter alle filer, der indeholder ordet hyperconvergence”, skal du bruge;

find / -type f -exec grep -l -i "hyperconvergence" {} ;

Output

/root/numeric/hci/root/HCIP

–jeg mulighed aktiverer kommandoen til at ignorere tilfælde, og vil finde ud af teksten, om kapitaliserede eller ej, dvs hyperconvergence, Hyperconvergence , osv.,

At lede efter de filer i en bestemt mappe, skal du blot føje den til kommandoen

find ./numeric -type f -exec grep -l -i "hyperconvergence" {} ;

Output

./numeric/hci

Finde Filer og Mapper på baggrund af Størrelse

Du kan finde alle filer eller mapper, der er mindre, lig med eller større end en vis størrelse, inden for et bestemt interval eller tom. Brug det passende størrelsesformat afhængigt af typen af filer eller mapper, du søger efter.,nd filer af en vis størrelse – lige til 30MB

for at Søge At finde alle 30MB filer

find / -size 30M

Find filer der er større end en angivet størrelse

find -size +2M

Output

. /Downloads/ubuntu18043.iso ./.cache/pip/http/6/e/3/8/3/6e38383f41850c3e5705d48116bc52f81b92a80500f414305057 7a9c

Find filer mindre end 10MB i den aktuelle mappe

find . -type f -size -10M

Find filer med størrelser på mellem 100-200 MB

Når man søger efter filer inden for et bestemt interval, f.eks mellem 100 og 200 MB

find / -size +100M -size -200M

Se efter mapper, der er større end 20kb

find / -type d -size +20k

Find tomme filer og mapper.,

Filer

find ./ -type f -size 0

eller

find ./ -type f –empty

Mapper

find ./ -type d –empty

Find filer af alder eller ændring af tidspunkt

Finde filer, der er ældre end n dage

find /path/ -type f -name '*.txt' -mtime +8

-mtime +8 vil se for txt filer, der er ældre end 8 dage.,

Ved ændringsdato

Dette vil se ud for filer, der er ændret inden for de sidste 17 timer

find . -mtime -17 -type f 

Ser ud til mapper ændret inden for de sidste 10 dage.

find . -mtime -10 -type d 

Find filer baseret på adgang til eller ændring

Finde filer, baseret på dato eller et klokkeslæt åbnes. Dette giver dig mulighed for at se filer, der har eller ikke er blevet adgang til inden for en bestemt periode.

for at se filer, der ikke er åbnet inden for de sidste 10 dage i hjemmemappen.,

find /home -atime +10

– Filer adgang til præcis 10 dage siden

find /home -atime 10

åbnet i de sidste 10 dage.

find /home -atime -10

Finde filer, der er ændret inden for de seneste n dage

Du kan også kigge efter filer i /home mappe ændret inden for de sidste 10 dage ved hjælp af kommandoen;

find /home -mtime -10 

Finde filer, der er ændret inden for en specifik periode.

for eksempel alle filer ændret mellem 6 og 15 dage siden i hjemmemappen.,

find /home -type f -mtime +6 -mtime -15

Filer og mapper tilgængelige inden for de sidste 10 minutter

for At finde de filer, der er tilgået inden for de sidste 10 minutter, så brug -amin mulighed.

find . -amin -10 -type f

Output

./.bash_history./.profileroot@ubuntu1804:~#

adgang til Mapper inden for de sidste 10 minutter

find . -amin -10 -type d

Find filer, der matcher specifikke tilladelser

Syntaks

$ find -perm mode

Hvor mode er den tilladelse, der er enten numeriske såsom 644, 655, 700, 777 osv, eller bogstaver, som f.eks. u=x, a=r+x, osv.,

Du kan angive tilstanden på følgende tre forskellige måder.

  1. uden et præfiks, når du vil finde filer med de nøjagtige tilladelser angivet.
  2. med”- ” for filer med mindst den angivne tilladelse. Dette returnerer filer med de angivne samt yderligere højere tilladelser.
  3. brug af ” / ” kræver angivelse af ejeren eller gruppen med tilladelse til filen.,

Find filer med tilladelse 777

find -perm 777

Output

./file1

Finde filer med mindst 766
find -perm -766

Output

./file2./file1

kommandoen ser ud til alle filer, hvor

  • filer ejeren har læse/skrive/køretilladelse.
  • gruppen har læse / skrive tilladelser
  • andre har læse/skrive tilladelse

som sådan returnerer den to filer, der opfylder dette kriterium – file1 og file2., Filerne behøver ikke at have den nøjagtige766 tilladelser og kan have yderligere dem så længe, men skal have mindst den angivne.

Find filer, der kan skrives af ejeren

Vi bruger nu “/ ” til at søge efter filer, der kan skrives af enten deres ejer eller gruppe eller andre.

find -perm /222../file2./file3./file1

ovenstående søger efter filer, der kan skrives af enten deres ejer eller gruppe.dette returnerer filer, der kan skrives af begge, men ikke nødvendigvis begge. For at se filer, hvor begge har skrivbare tilladelser, skal du bruge præfikset.,

./file2./file1

Find filer der ejes af en bruger

Finde alle filer, der er ejet af Jack

find /home -user jack

Output

/home/jack/home/jack/examples.desktop/home/jack/.gnupg/home/jack/.gnupg/private-keys-v1.d/home/jack/ans.cgi

Find bestemte filer der ejes af en bruger

Finde alle tekstfiler, der ejes af Jack

find /home -user jack -iname "*.txt"

Output

/home/jack/docs/file32.txt

Find og en liste over filer og mapper sammen med deres tilladelser

find -name "*.conf" | ls -l

Output

Find og handle på de resultater

I dette afsnit, vi vil se på, hvordan du kan handle på de filer, der svarer til det mønster, der er specificeret i find-kommando.,

Find filer og ændre tilladelser

Find og ændre tilladelser for bestemte filtyper. I vores tilfælde vil vi arbejde med PHP-filer med forskellige tilladelser som vist nedenfor.,

Vi vil nu se for alle PHP-filer (ovenfor), og udskift deres tilladelser med 755

find ver -name "*.php" -type f -exec chmod 755 {} ;

kommandoen ser ud til PHP filer i ver bibliotek, og derefter sætter deres tilladelse til at 755 (rwxr-xr-x)

Resultater

Find og ændre fil og mappe tilladelser

Finde filer med 644 tilladelser og ændre dem til at have 655 tilladelser

find . -type f -perm 644 -exec chmod 655 {} ;

Du kan også søge efter mapper med 644 tilladelser og erstatte denne med 755.,

find . -type d -perm 644

Output

./docs 

docs-mappen har 644 tilladelser

drwxrwxr-x 2 jack jack 4096 Jan 3 12:45 docs

for At indstille den til 755 vi kører

find . -type d -perm 644 -exec chmod 755 {} ;

Nu kan vi så ind igen for at se, hvad der præcist 755

find . -type d -perm 755

Output
.
./docs

ovenfra kan vi se root-og docs-mapperne har 755 tilladelser.,

Ls –la kommando giver følgende oplysninger

drwxr-xr-x 2 jack jack 4096 Jan 3 12:45 docs

Find og kopiere filer eller mapper

Finde og kopiere en bestemt fil til en mappe

kommandoen nedenfor vil du finde file22.txt-fil og kopiere den til ~/tmp/images bibliotek.,

find -iname file22.txt -exec cp {} ~/tmp/images ;

Finde og kopiere en type af filer til en mappe

for At finde filer, såsom billeder med jpg udvidelse i den aktuelle mappe og kopiere dem til en anden placering som en billeder i mappen, skal du bruge;

find -iname '*.jpg' -exec cp {} ~/tmp/images ;

Dette vil finde og kopiere alle de jpg-filer til ~/tmp/images mappe.

Find og kopier en fil til mange mapper

Find og kopier en enkelt til flere mapper.,

find ~/tmp/dir1/ ~/tmp/dir2/ $HOME/3/ -maxdepth 0 -exec cp ~/numeric/hci {} ;

Dette vil finde den fil, hci-fil og kopiere den til de tre biblioteker i /tmp/dir1/ /tmp/dir2/ og $HOME/3/

Find og flytte filer til en anden mappe

for At flytte en kendt fil fra en mappe til en anden., For at flytte universal.php fil;

find ~/folder/ -type f -name universal.php -exec mv {} ~/numeric/ ;

Søg og flytte filer med en given endelse til en anden mappe

find ~/numeric/ -type f -name '*.php' -exec mv {} ~/folder/ ;

Find visse filer og flytte til en bestemt anden mappe

find -type f -name uni*.* -exec mv {} ~/unifiles/ ;

kommandoen ser for alle de filer med navne, der starter med uni og med en udvidelse. Det flytter dem derefter til mappen /unifiles/

Find og flyt filer baseret på alder

Find og flyt filer, der er ældre end bestemte dage, til et andet sted, f.eks. arkivet.,

find /path/ -type f -name '*.pdf' -mtime +20 -exec mv {} /backup1/ ;

Dette vil søge efter pdf-filer, der er ældre end 20 dage, og flytte dem til backup1-mappen.,filer og mapper

syntaks til at finde og fjerne filer eller mapper i den aktuelle mappe er

find . -type f -name "file to delete" -exec rm -f {} ; for at slette filer eller

find . -type d -name "dir-to-delete" -exec rm -rf {} ; for at slette mapper kun

Find og slette bestemte filer

for At finde og slette filer, der starter med til, brug;

find . -type f -name "til*" -exec rm {} ; 

for At finde og slette mapper, der starter med til

find . -type d -name "til*" -exec rm {} ;

Fjern begge filer og mapper

find . -name "til*" -exec rm -rf {} ; 

Dette vil fjerne både filer og mapper, der starter med de pågældende bogstaver til.,

Slet ved udvidelse

Nedenfor er, hvordan du kan finde og slette alle txt filer i den aktuelle mappe. Udskift txt med en anden udvidelse som f.eks. bak pdf eller enhver anden, som du ønsker at fjerne.

find . -type f -name "*.txt" -exec rm -f {} ;

Hvis du vil have systemet til at bede dig om at bekræfte, før du sletter hver fil, skal du tilføje-i-indstillingen som nedenfor.,

find . -type f -name "*.txt" -exec rm -i {} ;

Output

Som standard -rm vil ikke fjerne mapper, og du er nødt til at bruge –r mulighed for at sikrer en rekursiv fjernelse. Dette sikrer sletning af tomme mapper og dem, der indeholder filer. Indstillingen-f tvinger fjernelsen og bruges til både filer og mapper.

Find og Slet filer ældre end n dage

Find og Slet backup filer ældre end 20 dage fra den aktuelle mappe.,

find . -type f -name '*.bak' -mtime +20 -exec rm {} ;

Dette vil slette alle .bak filer ældre end 20 dage.

Find og slette mapper kun

for At slette en mappe der hedder dir22

find . -type d -name dir22 -exec rm -rf {} ;

Sikre, at du matcher den mappe navn tilfælde eller bruge -iname option.

find . -type d -iname Dir22 -exec rm -rf {} ;

Fjerner både Dir22 og dir22

for At bekræfte, inden sletningen, skal du bruge-jeg mulighed.

find . -type d -iname Dir22 -exec rm -rf -i {} ;

Output
rm: Fjern mappe ‘./Dir22’?, N
rm: Fjern directory ‘./dir22’? y

I vores tilfælde, vi har skrevet n efter mappe Dir22 der vil ikke blive slettet, og y til den dir22, som nu vil blive fjernet.

Find og fjern tomme filer

Du kan bruge en af følgende kommandoer til at finde tomme filer og slette dem automatisk.

find ./ -type f -size 0 -exec rm -f {} ;

eller
find ./ – type f-størrelse 0 /findargs rm-f
eller
find.,/ – type f-størrelse 0-slet

Find og fjern tomme mapper

for at fjerne tomme mapper bruger vid mulighed.

find ./ -type d -empty -exec rmdir {} ;

et andet alternativ er at bruge Slet i stedet for fjern.

find ./ -type d -empty -delete

bemærk, at sletning af system eller kritiske filer fra din computer kan beskadige operativsystemet eller applikationer eller føre til tab af dine vigtige data.

for at undgå utilsigtede sletninger er det bedste praksis at bruge en ikke-root-brugerkonto., Sørg også for, at du sletter de rigtige filer, der ikke er nyttige, og at du har en sikkerhedskopi af alle dine datafiler, bare i tilfælde.

Hvad er det næste?

gå videre og prøv ovenstående Linu.find kommandoer i dit laboratorium eller ikke produktionsmiljø. Se om du kan bruge nogle til at automatisere filsystemet oprydning med Crontab. Og for at mestre Linu., tjek dette online kursus.

Skriv et svar

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

Videre til værktøjslinje