40 Best Examples of Find command in Linux (Svenska)

kommandot Linux find är ett kraftfullt verktyg som gör det möjligt för systemadministratörer att hitta och hantera filer och kataloger baserat på ett brett utbud av sökkriterier. Det kan hitta kataloger och filer med deras namn, deras typ, eller förlängning, storlek, behörigheter, etc.

förutom att hitta filer och kataloger, kombinera kommandotfind med andra kan du vidta åtgärder på resultaten., Genom att lägga till alternativet-exec kan sysadmins köra externa kommandon och utföra åtgärder som att kopiera, flytta, radera eller ändra behörigheter för de filer som matchar de angivna kriterierna, t.ex. storlek, namn etc.

i den här artikeln börjar vi med att förklara de grundläggande Linux find-kommandona med exempel. Detta visar hur du hittar filer och kataloger. Vi kommer då att visa dig hur du använder alternativet -exec för att agera på filerna eller katalogerna baserat på deras storlek, behörigheter etc.,

den allmänna syntaxen för kommandot Sök är

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

var,

i den här handledningen kommer vi att förklara hur du hittar filer och kataloger som matchar angivna mönster. Vi kommer också att se hur du utför åtgärder på de filer eller kataloger som find-kommandot lokaliserar. Guiden är baserad på Ubuntu men är tillämplig på de flesta Linux-distributioner och versioner.

hitta filer och kataloger

hitta specifika filer med namn eller tillägg

för att leta efter en specifik fil, kör följande kommando från roten ( / )., Kommandot innehåller det exakta namnet för filen du söker efter.

find . -name file22.txt

utgång

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

Observera att resultaten inkluderar sökvägen. Detta är viktigt om du inte känner till katalogen där filen finns, eller när den är på mer än ett ställe.

Du kan också söka efter filen i en annan katalog medan du fortfarande befinner dig på den aktuella platsen. I det här fallet måste du ange sökvägen till katalogen där du vill söka.,

find ./test -name file22.txt

Letar efter specifika filer i en annan katalog

i vårt fall kommer vi att leta efter alla som börjar med brevfilen i testkatalogen.

find ./test -name file*

utgång

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

Sök efter filer genom förlängning

för att hitta en fil i Linux med en viss förlängning, Lägg till den i kommandot.,

find . -name *.txt

utgång

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

hitta filer och kataloger med namn

använd kommandot nedan för att leta efter filer och kataloger som börjar med bokstävernaqa. I vår dator har vi filerna qatree.txt och qa.txt samt en katalog med namnet qa.,

om vi kör kommandot;

find ./ -name "qa*"

returnerar följande utdata

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

kommandot returnerar både filer och kataloger som matchar sökkriterierna. För att bara hitta filer eller kataloger måste du ange detta i kommandot.

hitta endast filer eller kataloger

användtype f – växeln endast för filer.

endast filer

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

utdata

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

endast kataloger

Lägg till alternativettype d för att bara hitta kataloger.,

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

Output

./home/qa

Case okänslig find command

alla sökningar med-name switch är skiftlägeskänsliga och ger inte resultat med versaler. För att få alla kundcase, använd alternativet-iname.

find ./ -iname "qa*"

utgång

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

Sök efter en fil från flera kataloger

för att hitta filerna i olika kataloger, Lägg till deras sökvägar i kommandot., I vårt fall kommer vi att checka intest ochnumeric kataloger.

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

utgång

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

hitta flera filer med olika tillägg från alla kataloger

Du kan använda kommandot Sök för att hitta flera filer som delar de olika tilläggen som *.doc, *.txt , etc. Detta kan göras separat, en förlängning i taget, eller med bara ett kommando som innehåller alla önskade tillägg.,

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

utgång

hitta filer som innehåller viss text

Ibland vill du komma åt en fil som innehåller viss text men kan inte återkalla dess filnamn eller plats. Med det här kommandot kan du hitta alla filer som innehåller din måltext.

för att leta efter alla filer som innehåller ordet hyperconvergence”, använd;

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

utgång

/root/numeric/hci/root/HCIP

alternativet –i gör det möjligt för kommandot att ignorera kundcase och hittar texten om den aktiveras eller inte, dvs hyperconvergence , Hyperconvergence, etc.,

för att leta efter filerna i en viss katalog, Lägg till den helt enkelt till kommandot

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

utgång

./numeric/hci

hitta filer och kataloger baserat på storlek

Du kan hitta alla filer eller kataloger som är mindre, lika med eller större än en viss storlek, inom ett visst område eller tomt. Använd lämpligt format beroende på vilken typ av filer eller kataloger du söker efter.,nd – filer av en viss storlek-lika med 30MB

För att söka efter alla 30MB-filer

find / -size 30M

hitta filer större än en viss storlek

find -size +2M

utgång

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

hitta filer Mindre än 10MB i den aktuella katalogen

find . -type f -size -10M

hitta filer med storlekar mellan 100-200MB

När du letar efter filer inom ett visst område som mellan 100 och 200 MB

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

leta efter kataloger större än 20kb

find / -type d -size +20k

hitta tomma filer och kataloger.,

filer

find ./ -type f -size 0

eller

find ./ -type f –empty

kataloger

find ./ -type d –empty

hitta filer efter ålder eller modifieringstid

hitta filer äldre än n dagar

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

-mtime +8 kommer att leta efter txt filer som är äldre än 8 dagar.,

efter ändringsdatum

detta kommer att leta efter filer som ändrats under de senaste 17 timmarna

find . -mtime -17 -type f 

Letar efter kataloger som ändrats under de senaste 10 dagarna

find . -mtime -10 -type d 

hitta filer baserat på åtkomst eller modifiering

hitta filer baserat på datum eller tid som nås. Detta gör att du kan se filer som har eller inte har nåtts inom en viss period.

för att se filer som inte har nåtts under de senaste 10 dagarna i hemkatalogen.,

find /home -atime +10

filer nås exakt 10 dagar sedan

find /home -atime 10

nås inom de senaste 10 dagarna

find /home -atime -10

hitta filer som ändrats under de senaste n dagarna

Du kan också leta efter filerna i/home katalog modifierad inom de senaste 10 dagarna med kommandot;

find /home -mtime -10 

hitta filer modifierade inom en viss period.

till exempel alla filer som ändrats mellan 6 och 15 dagar sedan i hemkatalogen.,

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

filer och kataloger nås inom de senaste 10 minuterna

för att hitta filerna nås inom de senaste 10 minuterna, använd-amin alternativet.

find . -amin -10 -type f

utgång

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

kataloger nås inom de senaste 10 minuterna

find . -amin -10 -type d

hitta filer som matchar specifika behörigheter

Syntax

$ find -perm mode

var läget är behörigheten vilket är antingen numeriskt som644, 655, 700, 777, etc, eller bokstäver somu=x, a=r+x, etc.,

Du kan ange läget på följande tre olika sätt.

  1. utan prefix när du vill hitta filer med exakt angivna behörigheter.
  2. med ”- ” för filer med minst angiven behörighet. Detta returnerar filer med angivna samt ytterligare högre behörigheter.
  3. med ”/” måste du ange ägaren eller gruppen med behörigheten till filen.,

hitta filer med tillstånd 777

find -perm 777

utgång

./file1

hitta filer med minst766
sök-perm -766

utgång

./file2./file1

kommandot söker efter alla filer där

  • filägaren har läs – /skriv – /körbehörigheter.
  • gruppen har läs – / skrivbehörigheter
  • andra har läs – /skrivbehörighet

som sådan returnerar den två filer som uppfyller detta kriterium-file1 och file2., Filerna behöver inte ha de exakta 766 behörigheterna och kan ha ytterligare sådana så länge men måste ha åtminstone den angivna.

hitta filer skrivbara av ägaren

Vi kommer nu att använda ”/” för att leta efter filer skrivbara av antingen deras ägare eller grupp eller andra.

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

ovanstående söker efter filer som är skrivbara av antingen deras ägare eller grupp.
detta returnerar filer som är skrivbara av antingen men inte nödvändigtvis båda. För att se filer, där båda har skrivbara behörigheter, använd-prefixet.,

./file2./file1

hitta filer som ägs av en användare

hitta alla filer som ägs av Jack

find /home -user jack

utgång

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

hitta specifika filer som ägs av en användare

hitta alla textfiler som ägs av Jack

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

utgång

/home/jack/docs/file32.txt

hitta och lista filer och kataloger tillsammans med deras behörigheter

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

utgång

hitta och agera på resultaten

i det här avsnittet kommer vi att titta på hur du kan agera på de filer som matchar mönstret som anges i sökkommandot.,

hitta filer och ändra behörigheter

Sök och ändra behörigheter för vissa filtyper. I vårt fall kommer vi att arbeta med PHP-filer med olika behörigheter som visas nedan.,

Vi kommer nu att leta efter alla PHP-filer (ovan) och ersätta deras behörigheter med 755

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

kommandot letar efter PHP-filer i katalogenver och anger sedan deras tillstånd till755 (rwxr-xr-x)

resultat

hitta och ändra fil-och katalogbehörigheter

hitta filer med 644 behörigheter och ändra dem till att ha 655 behörigheter

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

Du kan också leta efter kataloger med 644 behörigheter och ersätta det med 755.,

find . -type d -perm 644

utgång

./docs 

docs-mappen har 644 behörigheter

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

för att ställa in den på 755, kör vi

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

Nu kan vi kontrollera igen för att se exakt vad 755

find . -type d -perm 755

utgång
.
./ docs

från ovan kan vi se Rot-och dokumentkataloger har 755 behörigheter.,

Ls –la kommandot ger följande detaljer

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

hitta och kopiera filer eller kataloger

hitta och kopiera en specifik fil till en katalog

kommandot nedan hittarfile22.txt-filen och kopiera den till~/tmp/images katalog.,

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

hitta och kopiera en typ av filer till en katalog

för att hitta filer som bilder medjpg förlängning i den aktuella katalogen och kopiera dem till en annan plats som en bildmapp, använd;

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

detta kommer att hitta och kopiera alla jpg-filer till~/tmp/images mapp.

hitta och kopiera en fil till många kataloger

hitta och kopiera en enda till flera kataloger.,

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

det här hittar filen hci-filen och kopierar den till de tre katalogerna i/tmp/dir1/ /tmp/dir2/ och$HOME/3/

hitta och flytta filer till en annan katalog

för att flytta en känd fil från en katalog till en annan., För att flytta filen universal.php;

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

Sök och flytta filer med ett visst tillägg till en annan mapp

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

hitta vissa filer och flytta till en viss annan mapp

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

kommandot söker efter alla filer med namn som börjar med uni och som har någon förlängning. Det flyttar sedan dem till katalogen/unifiles/

hitta och flytta filer baserat på ålder

hitta och flytta filer äldre än angivna dagar till en annan plats som arkivet.,

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

detta kommer att leta efter pdf-filer äldre än 20 dagar och flytta dem till backup1-katalogen.,filer och kataloger

syntaxen för att hitta och ta bort filer eller kataloger i den aktuella katalogen är

find . -type f -name "file to delete" -exec rm -f {} ; för att bara ta bort filer eller

find . -type d -name "dir-to-delete" -exec rm -rf {} ; för att bara ta bort kataloger

hitta och ta bort endast specifika filer

för att hitta och ta bort filer som börjar med til, använd;

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

för att hitta och ta bort kataloger som börjar med til

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

ta bort både filer och kataloger

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

detta tar bort både filer och kataloger som börjar med bokstäverna til.,

Delete by extension

nedan är hur du kan hitta och ta bort allatxt filer i den aktuella katalogen. Ersätttxt med ett annat tillägg sombak,pdf eller något annat som du vill ta bort.

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

om du vill att systemet ska uppmana dig att bekräfta innan du tar bort varje fil, Lägg till-i-alternativet enligt nedan.,

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

utgång

som standard tar-rm inte bort katalogerna och du måste använda alternativet–r för att säkerställa en rekursiv borttagning. Detta säkerställer radering av tomma kataloger och de som innehåller filer. Alternativet-f tvingar borttagningen och används för både filer och kataloger.

hitta och ta bort filer som är äldre än n dagar

hitta och ta bort säkerhetskopior som är äldre än 20 dagar från den aktuella katalogen.,

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

detta tar bort alla.bak filer som är äldre än 20 dagar.

hitta och ta bort kataloger endast

för att ta bort en katalog som heterdir22

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

se till att du matchar katalognamnet fallet eller använda alternativet-iname.

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

tar bort bådeDir22 ochdir22

för att bekräfta innan du raderar, använd-i-alternativet.

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

utgång
rm: remove directory ’./Dir22’?, n
rm: ta bort katalog’./dir22′? y

i vårt fall skrev vi n för katalogen Dir22 som inte kommer att raderas och y för dir22 som nu kommer att tas bort.

hitta och ta bort tomma filer

Du kan använda något av följande kommandon för att hitta tomma filer och ta bort dem automatiskt.

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

eller
sök ./ – typ f-storlek 0 / xargs rm-f
eller
Hitta.,/- type f –size 0-delete

hitta och ta bort tomma kataloger

för att ta bort tomma kataloger använder vi alternativet d.

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

ett annat alternativ är att använda delete istället för remove.

find ./ -type d -empty -delete

Observera att borttagning av system eller kritiska filer från datorn kan skada operativsystemet eller programmen eller leda till förlust av viktiga data.

för att undvika oavsiktliga raderingar är det bästa sättet att använda ett användarkonto som inte är root., Se också till att du tar bort rätt filer som inte är användbara och att du har en säkerhetskopia av alla dina datafiler ifall.

vad händer härnäst?

fortsätt och prova ovanstående Linux find-kommandon i din lab-eller icke-produktionsmiljö. Se om du kan använda några för att automatisera filsystemet rensning med Crontab. Och, för att behärska Linux, kolla in denna online-kurs.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

Hoppa till verktygsfältet