Hitta kommandot och dess alternativ i exempel. Hur man söker efter filer i linux med hjälp av find-kommandot Hitta mappar linux

Börjar jobba med Linux-server, möter användare ofta problemet med att hitta de nödvändiga filerna.

Denna handledning täcker användningen av det relaterade sökkommandot, som låter dig söka efter filer med olika filter och alternativ. Dessutom täcker den här guiden kortfattat lokaliseringskommandot, som kan användas för att hitta kommandon.

Sök efter filnamn

Att söka efter en fil med namn är naturligtvis det mest uppenbara sättet att hitta rätt fil.

För att göra detta, använd:

hitta -namn "fråga"

Detta kommando är skiftlägeskänsligt (det vill säga det behandlar filer med namnet fil och fil som två olika filer).

För att söka efter en fil med namn, skiftlägesokänslig, skriv:

hitta -iname "fråga"

För att hitta filer som inte matchar ett visst mönster, invertera sökningen med -not-flaggor eller metatecken "!". Observera att när du använder "!" tecken måste escapes så att bash-skalet inte tolkar "!" även innan find-kommandot körs.

hitta -inte -namn "query_to_avoid"

hitta\! -namn "query_to_avoid"

Sök efter filtyp

Med parametern "-type" kan du ange typen önskad fil. Det fungerar så här:

hitta -typ typdescriptor-fråga

Här är en lista över vanliga beskrivningar som kan användas för att ange en filtyp:

  • f: vanlig fil;
  • d: katalog;
  • l: symbolisk länk;
  • c: teckenenheter;
  • b: blockera enheter.

Till exempel, för att hitta alla teckenenheter i systemet måste du köra kommandot:

hitta / -typ c
/dev/parport0
/dev/snd/seq
/dev/snd/timer
/dev/autofs
/dev/cpu/mikrokod
/dev/vcsa7
/dev/vcs7
/dev/vcsa6
/dev/vcs6
/dev/vcsa5
/dev/vcs5
/dev/vcsa4
. . .

För att hitta alla filer som slutar på .conf använd:

hitta / -typ f -namn "*.conf"
/var/lib/ucf/cache/:etc:rsyslog.d:50-default.conf
/usr/share/base-files/nsswitch.conf
/usr/share/initramfs-tools/event-driven/upstart-jobs/mountall.conf
/usr/share/rsyslog/50-default.conf
/usr/share/adduser/adduser.conf
/usr/share/davfs2/davfs2.conf
/usr/share/debconf/debconf.conf
/usr/share/doc/apt-utils/examples/apt-ftparchive.conf
. . .

Filtrera efter tid och storlek

Hitta kommandot låter dig filtrera resultatet baserat på storlek och senast ändrade tid.

filstorlek

För att filtrera filer efter storlek, använd alternativet -size.

Du måste också lägga till ett suffix i slutet av värdet för att ange storleken:

  • c: byte
  • k: kilobyte
  • M: megabyte
  • G: gigabyte
  • b: block på 512 byte

För att hitta filer exakt 50 byte stora, skriv:

hitta / -storlek 50c

För att hitta filer som är mindre än 50 byte, använd tecknet "-" framför värdet:

hitta / -storlek -50c

Följaktligen, för att hitta filer som är större än 700 megabyte, använd symbolen + före värdet; kommandot ser ut så här:

hitta / -storlek +700M

Sök baserat på tid

Linux lagrar data om åtkomsttid, ändringstid och ändringstid.

  • åtkomsttid: senaste gången filen öppnades (när filen lästes eller lades till);
  • ändringstid: förra gången filens innehåll ändrades;
  • ändra tid: Förra gången filens inod ändrades.

För att filtrera filer efter tid, använd alternativen "-atime", "-mtime" respektive "-ctime".

Menande given parameter anger hur många dagar sedan filen ändrades. Precis som med filstorleken kan du använda tecknen - och + för att få filer ändrade för mindre än eller mer än n dagar sedan.

Det vill säga, för att hitta en fil vars innehåll ändrades för 1 dag sedan, använd:

För att visa filer som öppnades för mindre än 1 dag sedan, använd:

hitta / -atime -1

För att hitta filer vars inoder har ändrats för mer än tre dagar sedan, skriv:

hitta / -ctime +3

Det finns också relaterade parametrar som kan användas för att ange minuter istället för dagar:

Detta kommer att returnera filer vars innehåll ändrades för en minut sedan.

Dessutom kan kommandot find jämföra filer och mata ut nyare:

hitta / -nyare min fil

Sök efter ägare och privilegier

Med kommandot find kan du söka efter filer efter ägare eller behörigheter för filen.

För detta används alternativen –användare, –grupp och –perm. Till exempel, för att hitta en fil som ägs av en användare med namnet syslog, skriv:

hitta / -user syslog

På liknande sätt, för att visa filer som tillhör skugggruppen, använd:

hitta / -gruppskugga

Du kan också söka efter filer med speciella rättigheter.

För att hitta en fil med specifika behörigheter, använd:

hitta / -perm 644

Den här raden visar alla filer med sådana behörigheter.

För att lista alla filer vars behörighet är större än eller lika med de angivna, använd syntaxen:

hitta / -perm -644

Detta kommer att returnera alla filer med extra privilegier (till exempel en fil med 744 privilegier).

Filtrera filer efter djup

För att köra exemplen Den här delen, skapa en katalogstruktur i den tillfälliga katalogen. Den bör bestå av tre nivåer av kataloger, med tio kataloger på den första nivån. Varje katalog (inklusive testkatalogen) måste innehålla tio filer och tio underkataloger.

För att skapa en sådan struktur, kör följande kommando:

CD
mkdir -p ~/test/level1dir(1..10)/level2dir(1..10)/level3dir(1..10)
tryck på ~/test/(fil(1..10),nivå1katalog(1..10)/(fil(1..10),nivå2katalog(1..10)/(fil(1..10),nivå3katalog( 1..10)/fil(1..10))))
cd ~/test

Använd kommandona ls och cd för att bekanta dig med den nyskapade strukturen och kontrollera om allt är skapat korrekt. Återgå sedan till testkatalogtestet:

Det här avsnittet visar hur du extraherar specifika kataloger från den här strukturen. För att komma igång, prova en enkel sökning efter en fil efter namn:

hitta -namn fil1







./level1dir7/level2dir8/level3dir6/fil1
./level1dir7/level2dir8/level3dir5/fil1

. . .

Detta kommando gav ett ganska omfattande resultat. Genom att skicka detta resultat till räknaren kan du se att 1111 filer matades ut till slut.

hitta -namn fil1 | wc -l
1111

Naturligtvis är denna slutsats i de flesta fall för omfattande och obekväm. Försök att begränsa det.

För att göra detta kan du använda alternativet --maxdepth för att ställa in det maximala sökdjupet:

hitta -maxdepth num -namnfråga

För att hitta fil1 i katalognivå1 och högre, ange ett maximalt djup på 2 (1 för katalog högsta nivån och 1 för nivå 1-kataloger).

hitta -maxdepth 2 -namn fil1
./level1dir7/fil1
./level1dir1/fil1
./level1dir3/file1
./level1dir8/fil1
./level1dir6/fil1
./fil1
./level1dir2/file1
./level1dir9/fil1
./level1dir4/fil1
./level1dir5/file1
./level1dir10/fil1

Som du kan se har detta resultat en mycket bekvämare form.

Dessutom kan du ange ett minsta sökdjup:

hitta -mindepth num -namn fråga

Detta används för att hitta filer som finns i slutet av kataloggrenar:

hitta -mindepth 4 -namnfil
./level1dir7/level2dir8/level3dir9/fil1
./level1dir7/level2dir8/level3dir3/fil1
./level1dir7/level2dir8/level3dir4/fil1
./level1dir7/level2dir8/level3dir1/fil1
./level1dir7/level2dir8/level3dir8/fil1
./level1dir7/level2dir8/level3dir7/fil1
./level1dir7/level2dir8/level3dir2/fil1
. . .

Återigen kommer detta resultat att innehålla ett stort antal filer (1000).

Det maximala och minsta sökdjupet kan kombineras för att minska sökintervallet:

hitta -mindepth 2 -maxdepth 3 -namnfil
./level1dir7/level2dir8/fil1
./level1dir7/level2dir5/fil1
./level1dir7/level2dir7/fil1
./level1dir7/level2dir2/fil1
./level1dir7/level2dir10/fil1
./level1dir7/level2dir6/fil1
./level1dir7/level2dir3/fil1
./level1dir7/level2dir4/fil1
./level1dir7/fil1
. . .

Utföra och kombinera kommandon

Sökverktyget låter dig utföra vilket hjälpkommando som helst på alla hittade filer; detta görs med alternativet –exec. Den grundläggande syntaxen ser ut så här:

hitta sökalternativ -exec kommando_och_alternativ () \;

Symbolerna () används som platshållare för hittade filer. Symboler \; används så att find kan avgöra var kommandot slutar.

Till exempel kan du hitta filer med 644-behörigheter (som i föregående avsnitt) och ändra deras behörigheter till 664:

cd ~/test
hitta. -perm 644 -exec chmod 664 () \;

Du kan sedan ändra behörigheterna för katalogen:

hitta. -perm 755 -exec chmod 700 () \;

För att länka flera resultat, använd kommandona -och eller -or. Kommandot -and antas om det utelämnas.

hitta. -namn fil1 -eller -namn fil9

Hitta filer med kommandot locate

Kommandot lokalisera är ett alternativ att hitta. Detta kommando är i allmänhet snabbare och kan enkelt söka i hela filsystemet.

Du kan installera det här kommandot med apt-get:

sudo apt-get uppdatering
sudo apt-get installera mlocate

Men varför är lokaliseringskommandot snabbare än hitta? Poängen är att lokalisera beror på en databas med filer i filsystemet.

Vanligtvis uppdaterar cron-skriptet denna databas en gång om dagen; men den kan också uppdateras manuellt. Kör detta kommando:

Kom ihåg: databasen måste uppdateras regelbundet för att hålla den uppdaterad; annars kommer du inte att kunna hitta nyligen mottagna eller skapade filer.

För att hitta filer med kommandot locate, använd helt enkelt följande syntax:

Resultatet kan också filtreras.

Till exempel, för att endast returnera filerna som innehåller själva frågan, istället för att lista alla filer som innehåller frågan i katalogerna som leder till den, kan du använda flaggan -b (för att bara leta efter basnamn, filens basnamn ):

För att få kommandot locate att endast returnera filer som fortfarande finns i filsystemet (det vill säga filer som inte raderades mellan den senaste uppdateringen och det aktuella lokaliseringsanropet), använd flaggan -e:

För att se statistik katalogiserad med kommandot locate, använd alternativet -S:

lokalisera -S
Databas /var/lib/mlocate/mlocate.db:
3 315 kataloger
37 228 filer
1 504 439 byte i filnamn
594 851 byte används för att lagra databas

Resultat

Hitta och lokalisera kommandona är utmärkta verktyg för att hitta filer på UNIX-liknande operativsystem. Var och en av dessa verktyg har sina egna fördelar.

Även om kommandona hitta och lokalisera är mycket kraftfulla i sig, kan de utökas genom att kombinera dem med andra kommandon. När du har lärt dig hur du arbetar med hitta och lokalisera, försök att filtrera deras resultat med kommandona wc, sort och grep.

Taggar: ,

Uppdaterad: 2019-11-02 Publicerad: 2016-07-25

Det mest mångsidiga och funktionella Linux-sökkommandot är − hitta. Den här artikeln är ett fuskblad med exempel på hur det används.

Allmän syntax

hitta<где искать> <опции>

<где искать> — sökvägen till rotkatalogen varifrån du ska starta sökningen. Hitta till exempel /home/user - sök i lämplig katalog. För den aktuella katalogen, använd punkten ".".

<опции> — en uppsättning regler att söka efter.

* som standard är sökningen rekursiv. För att söka i en specifik katalog kan du använda alternativet Max djup.

Beskrivning av alternativ

Alternativ Beskrivning
-namn Sök på namn.
-iname Versalokänslig sökning efter namn.
-typ

Typ av sökobjekt. Möjliga alternativ:

  • f - fil;
  • d - katalog;
  • l - länk;
  • p - rör;
  • s är uttaget.
-storlek Objektets storlek. Specificeras i block om 512 byte eller helt enkelt i byte (med tecknet "c").
-mtid Tid för filändring. Anges i dagar.
-mmin Ändra tid i minuter.
-en tid Den tid som objektet senast användes i dagar.
-är i Sista åtkomsttid i minuter.
-ctime Senast ändradägare eller rättigheter till objektet i dagar.
-cmin Senaste ägare eller rättigheter ändras på några minuter.
-användare Sök efter ägare.
-grupp Efter grupp.
-perm Med vissa åtkomsträttigheter.
-djup Sökningen ska inte starta från roten, utan från den djupaste kapslade katalogen.
-Max djup Det maximala djupet för katalogsökningen. -maxdepth 0 - sök endast i den aktuella katalogen. Som standard är sökningen rekursiv.
-beskära Uteslut de listade katalogerna.
-montera Flytta inte till andra filsystem.
-regex Med namn med reguljärt uttryck.
-regextyp<тип> Typen av det reguljära uttrycket.
-L Visar innehållet i symboliska länkar (symlänkar).
-tömma Sök efter tomma kataloger.
-radera Radera hittades.
-ls Utdata som ls -dgils
-skriva ut Visa hittades.
-tryck 0 Sökväg till hittade föremål.
-exec<команда> {} \; Kör kommandot på hittat.
-ok Ge en prompt innan du kör -exec.

Den fullständiga uppsättningen av faktiska alternativ kan erhållas med kommandot man hitta.

Hitta användningsexempel

Hitta en fil efter namn

hitta / -namn "fil.txt"

* i detta exempel kommer att söka efter en fil med namnet file.txt i hela filsystemet, med början vid roten / .

Söka efter en fil med en del av dess namn:

hitta / -namn "*.tmp"

* Detta kommando kommer att söka efter alla mappar eller filer i rotkatalogen /, slutar i .tmp

Hitta alla filer eller mappar som börjar med sess_ och avsluta med CD

hitta. -namn "sess_*" -a -namn "*cd"

* -a: logiskt OCH, -o: logiskt ELLER.

Sök efter datum

1. Sök efter filer som har ändrats för ett visst antal dagar sedan:

hitta. -typ f -mtid +60

* detta kommando kommer att hitta filer som har ändrats för mer än 60 dagar sedan.

2. Sök efter filer med nyare. Det här alternativet har varit tillgängligt sedan version 4.3.3 (du kan se det med kommandot hitta --version).

a) datum för ändring:

hitta. -typ f -newermt "2019-11-02 00:00"

* kommer att visa alla filer som har ändrats sedan 02.11.2019 00:00.

hitta. -typ f -newermt 2019-10-31 ! -newermt 2019-11-02

* hittar alla filer som ändrades mellan 31/10/2019 och 11/01/2019 (inklusive).

b) Ansökningsdatum:

hitta. -typ f -newerat 2019-10-08

* alla filer åtkomliga sedan 10/08/2019.

hitta. -typ f -newerat 2019-10-01 ! -newerat 2019-11-01

* alla filer öppnade i oktober.

c) skapandedatum:

hitta. -typ f -nyare 2019-09-07

hitta. -typ f -nyare 2019-09-07 ! -nyare "2019-09-09 07:50:00"

* filer skapade från 09/07/2019 00:00:00 till 09/09/2019 07:50

Typ

Sök endast efter filer i den aktuella katalogen och alla dess undermappar:

* f— sök endast efter filer.

Sök efter behörigheter

Vi söker alla rättigheter att läsa och skriva:

hitta / -perm 0666

Hitta filer som bara ägaren har åtkomst till:

hitta / -perm 0600

Filsökning efter innehåll

hitta / -typ f -exec grep -i -H "innehåll" () \;

* i det här exemplet utförs en rekursiv sökning efter alla filer i katalogen / och en lista över de som innehåller strängen innehåll.

Sorterat efter ändringsdatum

hitta /data -typ f -printf "%TY-%Tm-%Td %TT %p\n" | sort-r

* kommandot hittar alla filer i katalogen /data, lägger till ändringsdatumet till namnet och sorterar data efter namn. Som ett resultat får vi att filerna kommer att gå i den ordning de ändras.

hitta /hem/användare/* -typ d -exec chmod 2700 () \;

* i det här exemplet letar vi efter alla kataloger ( typ d) i katalogen /hem/användare och sätta rättigheter för dem 2700 .

Schemalagd städning

team hitta bekväm att använda för automatisk borttagning föråldrade filer.

Öppna cron-jobb för redigering:

Och lägg till:

0 0 * * * /bin/hitta /tmp -mtid +14 -exec rm () \;

* i det här exemplet tar vi bort alla filer och mappar från katalogen /tmp, hundradel äldre 14 dagar. Jobbet pågår varje dag kl 00:00 .
* vi tittar på den fullständiga sökvägen till den körbara filen find med kommandot som finner- i olika UNIX-system kan den placeras på olika platser.

    Hitta filen efter dess namn. En sådan enkel sökning utförs med hjälp av sökverktyget. Kommandot nedan kommer att söka efter en fil i den aktuella katalogen och alla dess underkataloger.

    hitta -iname "filnamn"

    • Skriv -iname istället för -name för att ignorera skiftläge i det angivna filnamnet. Kommandot -name är skiftlägeskänsligt.
  1. Börja söka i rotkatalogen. För att starta en systemomfattande sökning, lägg till /-modifieraren i frågan. I det här fallet kommer find-kommandot att leta efter filen i alla kataloger, med början från roten.

    hitta / -iname "filnamn"

    • Du kan börja söka i en specifik katalog; för att göra detta, ersätt / med en katalogsökväg, till exempel /home/max .
    • Kan användas. istället för / för att bara söka efter filen i den aktuella katalogen och dess underkataloger.
  2. Använd jokertecken.* för att hitta filer vars namn matchar en del av frågan. Jokertecknet * kan användas för att söka efter en fil fullständiga namn som är okänd, eller hitta alla filer med ett specifikt tillägg.

    hitta /home/max -iname "*.conf"

    • Detta kommando hittar alla .conf-filer i användarens Max-mapp (och dess undermappar).
    • Använd det här kommandot för att hitta alla filer vars namn matchar en del av frågan. Till exempel, om din dator har många WikiHow-relaterade filer, sök efter alla filer genom att skriva "*wiki*" .
  3. Gör det enklare att hantera dina sökresultat. Om det finns för många sökresultat är det svårt att hitta den önskade filen bland dem. Använd symbolen | så att sökresultaten filtreras av kommandot less. Detta gör det lättare att visa och filtrera sökresultat.

    hitta /home/max -iname "*.conf" | mindre

    Hitta specifika föremål. Använd modifierare för att endast visa vissa objekt i sökresultaten. Du kan söka efter vanliga filer (f), kataloger (d), symboliska länkar (l), tecken I/O-enheter (c) och blockenheter (b).

    hitta / -typ f -iname "filnamn"

  4. Filtrera dina sökresultat efter filstorlek. Om din dator har många filer med liknande namn, men du vet storleken på filen du letar efter, filtrera dina sökresultat efter filstorlek.

    hitta / -storlek +50M -iname "filnamn"

    • Detta kommando hittar alla filer som är större än 50 MB. Använd + eller - modifieraren för att indikera en ökning eller minskning i storlek. Om det inte finns någon + eller - modifierare, kommer kommandot att hitta filer som exakt matchar den angivna storleken.
    • Sökresultat kan filtreras efter byte (c), kilobyte (k), megabyte (M), gigabyte (G) eller block på 512 byte (b). Observera att ovanstående modifierare är skiftlägeskänsliga.
  5. Använd logiska operatorer (booleska operatorer) för att kombinera sökfilter. Du kan använda operatorerna -och , -eller , -not för att kombinera olika söktermer i en begäran.

    hitta /resefoton -typ f -storlek +200k -inte -iname "*2015*"

    • Detta kommando hittar filer i mappen "Travelphotos" som är större än 200 KB och som inte har numret 2015 i sina namn.

Utan tvekan, när man arbetar med Linux, ibland blir det nödvändigt filsökning med vissa egenskaper. Dessa egenskaper kan vara storleken eller typen av filen, behörigheter och mer.


Närvaron av ett kommando i Linux hitta hjälper mycket att hantera filsökning enligt olika kriterier.


Idag ska vi analysera sök filer i linux och ge huvudkommandoalternativen hitta som du kan tillämpa i ditt arbete.

Kommandoformat hitta:

hittaväg-alternativ

var vägär katalogen att söka. Du kan ange följande värden för sökvägen:

. - sök i den aktuella katalogen;

/ - sök från rotkatalogen;

~ - sök i hemkatalogen.

När det gäller alternativen finns det en mycket större lista här, vilket är extremt nödvändigt att noggrant läsa (detta kommer att hjälpa mycket i framtiden!). Så, grundläggande alternativ för find-kommandot:

-namn- sök efter filer efter namn med den givna mallen;

-användare- sök efter filer som tillhör den angivna användaren;

-grupp- sök efter filer som tillhör den angivna gruppen;

-perm- sök efter filer med angivet åtkomstläge;

-typ- sök efter filer av en viss typ. Typer räcker också:

  • b - speciell blockfil;
  • d - katalog;
  • c är en specialteckenfil;
  • f - vanlig fil;
  • l - symbolisk länk;
  • p - namngiven rör;
  • s - uttag.
-storlek- sök efter filer med storlek n enheter;

-mtid -n +n- sök efter filer vars innehåll har ändrats för mindre än (-) eller mer än (+) dagar sedan.

Tänk på några exempel på kommandoanvändning hitta :

Det vanligaste alternativet är alternativet -namn, som söker efter filer efter namn.

Exempel med alternativet -name :

$ hitta /mnt/usb -namn "*.mp3" -print

kommer att söka efter alla filer (anges med *-tecknet) som har filtillägget .mp3 på USB-enheten monterad i katalogen /mnt/usb.

$ hitta ~ -namn "test*" -print

kommer att visa en lista över filer i hemkatalogen som börjar med test.

Om du behöver hitta filer som börjar med vissa bokstäver (till exempel från a till j), kommer det att vara bekvämt att använda reguljära uttryck här, som är extremt bekväma att arbeta med:

$ hitta / -namn "*" -print

Ovanstående kommando hittar alla filer på systemet som börjar med bokstäverna a till j.

Hitta filer med specifika åtkomstlägen

Om du behöver hitta filer som har vissa åtkomstlägen kan du använda alternativet -perm som hjälper dig enkelt.

Låt oss till exempel söka efter filer med åtkomstläge 775 (ägare och grupp har fullständiga rättigheter, andra användare har skrivbegränsningar) som finns i den aktuella katalogen:

$ hitta. -perm 775 -tryck

Söker med hitta med alternativet -perm kan du använda ett annat sätt - du kan sätta ett bindestreck framför lägesvärdet och sedan kommer en sökning att göras efter filer för vilka alla angivna behörighetsbitar är inställda. Dessutom ignoreras de återstående bitarna i detta fall.

Låt oss till exempel hitta filer som gruppanvändare har full tillgång:

$ hitta. -perm -070 -tryck

Istället för ett bindestreck kan du ange ett plustecken. I det här fallet kommer den att söka efter filer som har minst en av de angivna behörighetsbitarna. Resten av bitarna ignoreras.

Sök efter filer för en specifik användare eller grupp

Att söka efter filer för en specifik användare är extremt enkelt att implementera. För att göra detta, kör bara kommandot:

$ hitta / -user admin -print

Kommandot ovan kommer att producera filsökning på systemet som ägs av administratörsanvändaren.

För att hitta filer som tillhör en specifik grupp (till exempel chefer), kör kommandot:

$ hitta / -gruppshanterare -print

För att söka efter filer från icke-existerande användare eller grupper kan du använda alternativen -nöser och -nogroup:

$ hitta / -nouser -print

$ hitta / -nogroup -print

Sök efter filer av en viss typ

En av de bekväma funktionerna i kommandot hitta, är möjligheten att söka efter filer av en viss typ. Överväg alternativ för att använda alternativet -typ:

Söker efter symboliska länkar i /etc-katalogen:

$ hitta /etc -typ l -print

Visar en lista över kataloger som finns i katalogen /mnt/raid

$ hitta /mnt/raid -typ d -print

Sök efter filer av en viss storlek

Alternativ -storlek låter dig söka efter filer av en viss storlek och ser ut så här när den körs:

$ hitta. -storlek 2000k -tryck

Ovanstående kommando kommer att hitta och visa de 2 megabyte-filer som finns i den aktuella katalogen på skärmen. Om du till exempel behöver hitta filer som är mindre än 500 kilobyte stora, kommer kommandot att se ut så här:

$ hitta. -storlek -500k -tryck

Om du behöver hitta filer som är större än 600 megabyte, använd kommandot:

$ hitta / -storlek +600M -print

Söker efter filer med alternativet -mtime

Alternativ -mtid låter dig hitta filer som har förändrats över tiden.

Till exempel stod vi inför uppgiften att söka efter filer i katalogen /mnt/raid/upload som har ändrats under de senaste 5 dagarna. Detta kommando hjälper oss:

$ hitta /mnt/raid/upload -mtime -5 -print

Om vi ​​behöver motsatsen, till exempel för att hitta filer som inte har ändrats på en vecka, använder vi kommandot:

$ hitta /mnt/raid/upload -7 -print

Team hittaär ett mycket praktiskt verktyg för filsökning och kan även användas till filsökning på NFS-enheter (nätverk filsystem), men i det här fallet måste du ta hänsyn till att det tar mycket mer tid att söka efter något på NFS än på lokala diskar.

I den här artikeln har vi bara täckt de grundläggande alternativen för hitta-kommandot som hjälper dig i ditt arbete. Använd det som är bekvämt och oroa dig inte för bagateller!

När du arbetar i någon operativ system ibland finns det ett behov av att använda verktyg för att snabbt hitta en viss fil. Detta är också relevant för Linux, så allt kommer att diskuteras nedan. möjliga sätt sök filer i detta operativsystem. Kommer att presenteras som verktyg filhanterare, såväl som de kommandon som används i "Terminal".

Om du behöver ställa in flera sökparametrar för att hitta önskad fil, sedan kommandot hitta oersättlig. Innan du överväger alla dess varianter är det värt att gå igenom syntaxen och alternativen. Den har följande syntax:

hitta vägalternativ

var vägär katalogen där sökningen kommer att ske. Det finns tre huvudvägalternativ:

  • / - sök i rotkatalogen och intilliggande kataloger;
  • ~ - sök i hemkatalogen;
  • ./ - sök i katalogen där användaren för närvarande befinner sig.

Du kan också ange sökvägen direkt till själva katalogen, där filen ska finnas.

alternativ hitta mycket, och det är tack vare dem som du flexibelt kan konfigurera sökningen genom att ställa in nödvändiga variabler:

  • -namn- göra en sökning baserat på namnet på det element som söks efter;
  • -användare- sök efter filer som tillhör en specifik användare;
  • -grupp- sök efter en specifik grupp av användare;
  • -perm- visa filer med angivet åtkomstläge;
  • -storlek- sökning baserat på objektets storlek;
  • -mtid +n -n- sök efter filer som har ändrats mer än ( +n) eller mindre ( -n) dagar sedan;
  • -typ- sök efter filer av en viss typ.

Det finns också många typer av nödvändiga element. Här är deras lista:

  • b- block;
  • f- vanlig;
  • sid- namngiven rör;
  • d- katalog;
  • l- länk;
  • s- uttag;
  • c- symboliskt.

Efter en detaljerad analys av syntaxen och alternativen för kommandot hitta du kan gå direkt till illustrativa exempel. På grund av överflöd av alternativ för att använda kommandot kommer exempel inte att ges för alla variabler, utan endast för de mest använda.

Metod 1: Sök på namn (alternativ -namn)

Oftast använder användare möjligheten att söka i systemet. -namn, så det är där vi börjar. Låt oss titta på några exempel.

Sök efter förlängning

Låt oss säga att du behöver hitta en fil med tillägget ".xlsx", som finns i katalogen Dropbox. För att göra detta måste du använda följande kommando:

hitta /home/user/Dropbox -namn "*.xlsx" -print

Från dess syntax kan vi säga att sökningen utförs i katalogen Dropbox ("/hem/användare/Dropbox"), och det önskade objektet måste vara med tillägget ".xlsx". Asterisken indikerar att sökningen kommer att utföras på alla filer med detta tillägg, oavsett deras namn. "-skriva ut" indikerar att sökresultaten kommer att visas.

Sök efter filnamn

Du vill till exempel söka i en katalog "/Hem" fil med namnet "klumpar", men dess förlängning är okänd. I det här fallet måste du göra följande:

hitta ~ -namn "lumpics*" -print

Som du kan se är symbolen som används här «~» , vilket innebär att sökningen kommer att ske i hemkatalogen. Efter alternativ "-namn" namnet på den sökta filen anges ( "klumpar*"). En asterisk i slutet betyder att sökningen endast kommer att göras med namn, utan hänsyn till tillägget.

Sök efter första bokstaven i namnet

Om du bara kommer ihåg den första bokstaven i filnamnet finns det en speciell kommandosyntax som hjälper dig att hitta den. Till exempel vill du hitta en fil som börjar med bokstaven från "g" innan "l", och du vet inte vilken katalog den finns i. Sedan måste du köra följande kommando:

hitta / -namn "*" -print

Att döma av tecknet "/" som kommer omedelbart efter huvudkommandot, kommer sökningen att utföras från rotkatalogen, det vill säga genom hela systemet. Nästa, del «*» betyder att sökordet börjar med en viss bokstav. I vårt fall från "g" innan "l".

Förresten, om du känner till filtillägget, så efter symbolen «*» du kan specificera det. Till exempel måste du hitta samma fil, men du vet att den har filtillägget ".odt". Sedan kan du använda detta kommando:

hitta / -namn "*.odt" -print

Metod 2: Sök efter åtkomstläge (alternativ -perm)

Ibland behöver du hitta ett objekt vars namn du inte vet, men du vet vilket åtkomstläge det har. Sedan måste du tillämpa alternativet "-perm".

Att använda det är ganska enkelt, du behöver bara ange sökplatsen och åtkomstläget. Här är ett exempel på ett sådant kommando:

hitta ~ -perm 775 -tryck

Det vill säga, sökningen utförs i hempartitionen och de sökta objekten kommer att ha åtkomst 775 . Du kan också föreskriva symbolen "-" före detta nummer, då kommer de hittade objekten att ha tillståndsbitar från noll till det angivna värdet.

Metod 3: Sök efter användare eller grupp (alternativ -användare och -grupp)

Varje operativsystem har användare och grupper. Om du vill hitta ett objekt som tillhör någon av dessa kategorier kan du använda alternativet "-användare" eller "-grupp", respektive.

Att hitta en fil efter dess användarnamn

Till exempel måste du hitta i katalogen Dropbox fil Lampor, men du vet inte vad det heter, du vet bara att det tillhör användaren "användare". Sedan måste du köra följande kommando:

hitta /home/user/Dropbox -user user -print

I det här kommandot angav du den nödvändiga katalogen ( /home/user/Dropbox), angav att du måste leta efter en fil som ägs av användaren ( -användare), och angav vilken användare den här filen tillhör ( användare).

Söker efter en fil med dess gruppnamn

Att söka efter en fil som tillhör en specifik grupp är lika enkelt - du behöver bara ändra alternativet "-användare" per alternativ "-grupp" och ange namnet på denna grupp:

hitta / -grupp gäst -print

Det vill säga du angav att du vill hitta en fil i systemet som tillhör gruppen "gäst". Sökningen kommer att ske i hela systemet, detta indikeras med symbolen «/» .

Metod 4: Sök efter en fil efter dess typ (alternativ -typ)

Att hitta ett visst element i Linux av en viss typ är ganska enkelt, du behöver bara ange lämpligt alternativ ( -typ) och ange typen. I början av artikeln listades alla typbeteckningar som kan användas för sökning.

Till exempel vill du hitta alla blockfiler i din hemkatalog. I det här fallet kommer ditt kommando att se ut så här:

hitta ~ -typ b -print

Följaktligen angav du att du söker efter filtyp, vilket framgår av alternativet "-typ", och bestämde sedan dess typ genom att sätta blockfilsymbolen - "b".

På samma sätt kan du visa alla kataloger i önskad katalog genom att ange symbolen i kommandot "d":

hitta /home/user -typ d -print

Metod 5: Sök efter en fil efter storlek (alternativ -storlek)

Om allt du vet om en fil är dess storlek, kan även det vara tillräckligt för att hitta den. Till exempel, om du vill hitta en 120 MB fil i en viss katalog, gör följande:

hitta /home/user/Dropbox -storlek 120M -print

Som du kan se hittades filen vi behöver. Men om du inte vet vilken katalog den finns i kan du söka i hela systemet genom att ange rotkatalogen i början av kommandot:

hitta / -storlek 120M -tryck

Om du vet den ungefärliga storleken på filen finns det ett speciellt kommando för det här fallet. Du måste skriva in "Terminal" samma, men innan du anger filstorleken sätt ett tecken «-» (om du vill hitta filer som är mindre än den angivna storleken) eller «+» (om storleken på filen du letar efter är större än den angivna). Här är ett exempel på ett sådant kommando:

hitta /home/user/Dropbox +100M -print

Metod 6: Sök efter en fil efter ändringsdatum (alternativ -mtime)

Det finns tillfällen då det är bäst att söka efter en fil vid det datum då den ändrades. På Linux görs detta med alternativet "-mtime". Att använda det är ganska enkelt, låt oss titta på allt med ett exempel.

Låt oss säga i en mapp "Bilder" vi måste hitta objekt som har ändrats under de senaste 15 dagarna. Här är vad du ska skriva i "Terminal":

hitta /home/user/Images -mtime -15 -print

Som du kan se visar det här alternativet inte bara filer som har ändrats under den angivna perioden, utan också mappar. Hon jobbar också i baksidan- du kan hitta objekt som har ändrats efter den angivna perioden. För att göra detta måste du ange ett tecken före det digitala värdet «+» :

hitta /home/user/Images -mtime +10 -print

GUI

Det grafiska gränssnittet gör livet mycket lättare för nybörjare som precis har installerat Linux distribution. Den här metoden sökning är mycket lik den som utförs i Windows, även om den kanske inte ger alla fördelar som den erbjuder "Terminal". Men först till kvarn. Så låt oss titta på hur man gör en filsökning i Linux med hjälp av GUI system.

Metod 1: Sök igenom systemmenyn

Nu kommer vi att överväga ett sätt att söka efter filer via menyn Linux-system. Stegen kommer att utföras i Ubuntu 16.04 LTS-distributionen, men instruktionerna är gemensamma för alla.