Find kommandot hjälper oss att hitta en viss fil i en katalog. Den används för att hitta listan över filer för olika villkor som tillstånd, användarägande, ändring, datum/tid, storlek och mer.
I Unix-liknande och andra operativsystem är kommandot find ett kommandoradsverktyg som hittar filer på basis av ett fåtal användarspecificerade format och antingen skriver ut alla matchade objekts sökväg eller, om andra åtgärder efterfrågas, implementerar den åtgärden på alla matchade objekt.
Den startar en sökning från en önskad startplats och korsar därefter rekursivt katalogerna (noderna) i en hierarkisk struktur (vanligtvis ett träd). Find-kommandot kan söka och gå från olika filpartitionssystem som tillhör en eller flera lagringsenheter under startkatalogen.
Sökformatet innehåller ett mönster för matchning mot filnamnet eller tidsintervallet för matchning mot ändringstiden eller filåtkomsttiden. Kommandot find ger som standard en lista över alla filer i den aktuella arbetskatalogen. Användare kan dock begränsa sökningen till en önskad maxnivå vid startkatalogen.
De associerade lokaliseringsprogrammen använder en indexerad fildatabas som erhålls från kommandot fine för att ge en snabbare teknik för att söka i hela filsystemet efter namn.
Sökverktyget kommer som standard med de flesta av Linux distros , så vi behöver inte installera något extra paket. Det är ett av de mest väsentliga och använda kommandona i Linux systemet.
find
De två alternativen bestämmer hur find ska överväga symboliska länkar. Standardnaturen är att aldrig följa symboliska länkar. Flaggan, dvs. -L , kommer att leda till att söka efter symboliska länkar. Flaggan, dvs. -H , kommer bara att följa symboliska länkar medan du fortsätter med kommandoradsargumenten. Flaggorna nämns i POSIX-standarden för find-kommandot. En grundläggande förlängning är en flagga, dvs. -P , för att uttryckligen inaktivera följande symbollänk.
Åtminstone en väg måste föregripa uttrycket. Find-kommandot kan internt tolka jokertecken, och kommandon måste noggrant citeras för att hantera skalglobing.
Uttryckskomponenter isoleras av kommandoradens argumentgräns, vanligtvis indikerad som blanksteg inom skalsyntaxen. De betraktas från vänster sida till höger sida. De kan inkludera logiska komponenter som ELLER och OCH samt predikat (åtgärder och filter). GNU-fynd innehåller flera andra funktioner som inte nämns av POSIX.
Följande symboler används för att ange katalogen:
(.) : För aktuellt katalognamn
(/) : För rotkatalogen
Kort historik om sökkommandot
Find-kommandot inträffade i version 5 Unix som ett element i Programmerarens arbetsbänk projekt och specificerades av Dick Haight med cpio, som utvecklats för att användas tillsammans.
Ursprungligen specificerades GNU-implementeringen av find-kommandot av Eric Decker . Senare utvecklades den av David MacKenzie, Tim Wood , och Jay Plett . Dessutom har find-kommandot porterats till IBM i OS.
infoga vattenstämpel i word
Predikat
Ofta använda primärprodukter är:
Hitta standardinställningar för att implementera -print om villkoren är sanna om uttrycket inte använder någon av -ok, -exec, -print eller -print0.
Operatörer
Operatörer förbättrar uttrycken för find-kommandot. De nämns i fallande ordning:
- expr1 expr2 (eller expr1 -a expr2 : AND. expr2 utvärderas inte om expr1 är falskt.
- expr1 -o expr2 : ELLER. expr2 utvärderas inte om expr1 är sant.
Exempel på kommandot hitta
Låt oss se följande exempel på kommandot find:
- Hitta filer efter namn
- Hitta filer efter typ
- Hitta nyare filer
- Hitta och ta bort en fil
- Hitta en katalog
- Hitta filer efter ändringstid
- Hitta filer med tillstånd
- Hitta och ersätt filer
- Hitta text i flera filer
Hitta filer efter namn
Vi kan söka i alla filer som slutar med tillägget '.txt'. För att göra det, kör följande kommando:
find . -name '*.txt'
Kommandot ovan kommer att lista alla textfiler från den aktuella arbetskatalogen. Tänk på följande utdata:
vad är myspace
Från ovanstående utdata listas alla filer som har tillägget '.txt' med kommandot find.
Hitta filer efter typ
Parametern '-type' används för att specificera filtypen.
Några av filtyperna är följande:
- f: vanlig fil
- d: katalog
- l: symboliska länkar
- c: teckenenheter
- b: blockera enheter
Tänk på kommandot nedan:
find . -type d -name '*.bak'
Kommandot ovan kommer att lista alla kataloger som har tillägget '.bak'. Tänk på följande utdata:
Från ovanstående utdata, kommandot 'find . -typ d -namn '*.bak' visar alla kataloger som slutar med '.bak'.
Hitta nyare filer
Parametern '-newer' hjälper till att söka efter filer som är nyare än den nämnda filen. Tänk på kommandot nedan:
find . -newer msg.txt
Kommandot ovan kommer att visa alla filer som är nyare än 'msg.txt' från den aktuella arbetskatalogen. Tänk på följande utdata:
Från ovanstående utdata är alla filer som visas nyare än 'msg.txt'-filen.
Hitta och ta bort en fil
Alternativet '-delete' används för att ta bort en specifik fil. Vi måste vara mycket försiktiga när vi använder det här kommandot eftersom det inte finns något ångraalternativ om det en gång körs. Tänk på kommandot nedan:
find . -name Demo.txt -delete
Ovanstående kommando tar bort filen 'Demo.txt' från den aktuella arbetskatalogen. Tänk på följande utdata:
Hitta en katalog
Alternativet 'typ -d' används för att hitta en katalog. Tänk på kommandot nedan:
find . type -depth -name Newdirectory
Ovanstående kommando kommer att hitta platsen för 'Nykatalog'. Tänk på följande utdata:
hur man kontrollerar skärmstorleken
Hitta filer efter ändringstid
Alternativet '-mtime', följt av antalet dagar, används för att hitta filerna genom modifiering. Antalet dagar kan vara positivt eller negativt. Det negativa värdet kommer att användas för mindre än som -1 används för den sista dagen, och på samma sätt kommer +1 att hitta filen för mer än en dag sedan. Tänk på kommandot nedan:
find ./Newdirectory -mtime -1
Ovanstående kommando hittar filerna som har ändrats under den senaste dagen. Tänk på följande utdata:
Hitta filer med tillstånd
Alternativet '-perm' används för att hitta filer med tillstånd. Utför find-kommandot med alternativet '-perm' och skicka det önskade värdet. Tänk på kommandot nedan:
find ./ -perm 777
Kommandot ovan kommer att lista filerna från den angivna katalogen som alla kan läsa, skriva och köra.
Hitta och ersätt filer
För att hitta och ersätta filer måste vi kombinera find-kommandot med sed-kommandot. För att arbeta med filer, använd alternativet '-exec' med kommandot find. Tänk på kommandot nedan:
find ./Newdirectory -type f -exec sed -i 's/find/replace/g' {} ;
från kommandot ovan kommer den angivna förekomsten att ersättas. Tänk på följande utdata:
Hitta text i flera filer
Vi kan göra en annan kombination av kommandot find med kommandot grep för att hitta texten från de olika filerna. Tänk på kommandot nedan:
find ./Newdirectory -type f -name '*.txt' -exec grep 'demo' {} ;
Ovanstående kommando kommer att hitta raderna som innehåller texten 'demo' från alla textfiler i katalogen 'Newdirectory'. Tänk på följande utdata:
Från ovanstående utdata kan vi se raderna med texten 'demo' har visats.
Sök i varje katalog
$ find / -name file1 -type f -print
Ovanstående kommando hittar alla kataloger för en vanlig fil vars titel är fil1 och skriver ut den på skärmen. I allmänhet är det inte en bra idé att söka efter filer på det här sättet. Det kan ta en bra tid. Så det är bäst att nämna katalogen. Ett fåtal operativsystem kan montera filsystem (dynamiska) som inte är gynnsamma för find-kommandot. Mer komplicerade filnamn som innehåller tecken som är unika för skalet kan behöva stängas med enstaka citattecken.