Ofta är det nödvändigt att söka efter vissa typer av filer i Linux -miljöer och vi vet inte rätt sätt att söka i dem ordentligt utan att slösa tid.
För Linux distros har ett kommando som heter find utvecklats som har utvecklats för att rekursivt filtrera objekt i filsystemet baserat på en villkorlig mekanism. Med det här kommandot kan vi söka efter en fil eller katalog i dess filsystem.
Om vi inkluderar parametern -exec kan filerna hittas och bearbetas omedelbart inom samma kommando.
1. Hitta filer efter namn eller tillägg Linux -kommandon
Vi kan använda hitta från kommandoraden för att hitta en specifik fil med namn eller tillägg.
Dess syntax är:
hitta / home / användarnamn / -namn "* .extension"Till exempel kommer vi att leta efter filer som slutar på .gz:
FÖRSTORA
2. Praktiska kommandon och syntax att använda med hitta Linux -kommandon
Med kommandot find har vi några parameteralternativ som:
hitta alternativ start / sökuttryckAlternativattributet styr beteende- och optimeringsmetoden för sökprocessen. Hem / sök-attributet definierar den översta katalogen där sökningen börjar filtrera.
Uttrycksattributet styr testerna som söker i kataloghierarkin för att producera utdata.
Till exempel kan vi utföra följande:
hitta -O3 -L / var / www / -name "* .html"Detta kommando möjliggör maximal optimeringsnivå (-O3) och låter dig följa de symboliska länkarna (-L) för att söka i hela katalogträdet på sökvägen / var / www / efter filer som slutar med .html.
FÖRSTORA
3. Alternativ och optimering med Find Linux -kommandon
Finds standardkonfiguration för sökning kommer att ignorera de symboliska länkarna (genvägsfiler), om vi vill hitta och följa de symboliska länkarna kan vi lägga till -L -alternativet till kommandot som vi såg tidigare. Find har tre (3) optimeringsnivåer som är -O1, -O2 och -O3.
Optimeringen -O1 är standard och tvingar dig att söka efter filter baserat på filnamn innan du kör alla andra tester.
Optimering på -O2 -nivå prioriterar filnamnsfilter, som i -O1, och kör sedan all filtypsfiltrering innan du fortsätter med andra mer resurskrävande förhållanden. Optimering av -O3 -nivå gör det möjligt att hitta en djupare optimering och ordnar om alla tester baserat på deras relativa utgif.webpter och sannolikheten för bättre resultat.
Några av alternativen är:
Det är ett filter baserat på det första filnamnet
-O1 (standard)
Använd filnamnet först och sedan filtypen
-O2
Ändra om resultatTillåter sökning att automatiskt omordna sökningen baserat på effektiv resursanvändning och sannolikheten för bättre resultat.
-O3
Söker nuvarande katalog samt alla underkataloger X nivåer djupt
-djup X
Sök oavsett text
-namn
Returnerar endast resultaten som inte matchar testfallet
-inte
Utför en filsökning
-typ f
Sök kataloger
-typ d
4. Hitta filer efter tidsändring Linux -kommandon
Sökkommandot har möjlighet att filtrera en kataloghierarki baserat på den senaste ändringen av filen.
Syntaxen är:
hitta / -namn "* conf" -mtime 8 hitta / home / user / -name "* conf" -mtime 2Det första kommandot visar en lista över alla filer i hela filsystemet som slutar med conf -tecken och har ändrats under de senaste 8 dagarna. Det andra kommandot filtrerar användarens hemkatalog för filer med namn som slutar med konf -tecken och har ändrats under de två senaste dagarna.
Använd Grep för att hitta innehållsbaserade filer Linux-kommandonSökkommandot kan bara filtrera kataloghierarkin baserat på ett filnamn och metadata, så om du behöver söka baserat på filinnehåll, använd ett verktyg som grep.
Vi kommer att använda följande syntax:
hitta. -typ f -exec grep "exempel" '{}' \; -skriva utDetta hittar alla objekt i den aktuella kataloghierarkin (.) Vilken är en fil (-typ f) och kör sedan grep-kommandot "exempel" för varje fil som uppfyller villkoren. Matchande filer skrivs ut på skärmen (-utskrift). Hängslen ({}) är en platshållare för sökresultatens resultat. {} Är inneslutet i enstaka citattecken (') för att undvika att grep återger ett felaktigt filnamn. Kommandot -exec avslutas med ett semikolon "(;)", som måste undvikas "(\;)" för att undvika tolkning av skalet.
Så här hittar och bearbetar du filer med hjälp av kommandot Find Command LinuxVi kan använda alternativet -exec för att köra kommandon mot alla objekt som matchar sökuttrycket.
Dess syntax är:
hitta. -namn "rc.conf" -exec chmod o + r '{}' \;Detta filtrerar alla objekt i den aktuella hierarkin (.) För filer som heter rc.conf och kör kommandot chmod eller + r för att ändra behörigheterna för sökresultaten.
Så hitta är en allierad för fullständig filsökning på Linux.