Ekskluder mapper i Linux Find

Ekskluder Mapper I Linux Find



Når du arbejder med Linux, kan du få et tilfælde, hvor du hurtigt vil finde en fil på din maskine. Linux tilbyder forskellige søgekommandoer, herunder 'find'-kommandoen, der lader dig finde en bestemt fil. Den eneste ulempe er, at kommandoen udsender adskillige rod og filer. Men hvis du er sikker på, at målfilen ikke er i en given mappe, kan du ekskludere den i 'find'-kommandoen for at reducere søgeoutputtet.

Dette indlæg dækker, hvad 'find'-kommandoen er, og hvordan den virker. Yderligere vil vi se, hvordan du kan bruge kommandoen, mens du udelukker mapperne i Linux. Læs videre!

Arbejde med Find-kommandoen

Kommandoen 'find' i Linux hjælper med at finde filerne og mapperne for at undgå at skulle finde dem manuelt. Den bruger følgende syntaks:







find

Her er et eksempel, hvor vi forsøger at finde en fil med navnet 'linuxhint.c' i hjemmemappen:





Outputtet giver den absolutte sti til at finde målfilen. Antag, at vi vil finde filerne ved hjælp af et mønster. Lad os sige, at vi ønsker at finde alle tekstfiler i Dokumenter/ på vores Linux-system. Vi specificerer vores kommando som illustreret i følgende:





Bemærk, hvordan 'find'-kommandoen udlæser alle de mapper, der indeholder tekstfilerne. Det er et simpelt eksempel på at bruge Linux 'find' kommandoen.



Sådan ekskluderes mapperne i Linux Find

Når du udfører 'find'-kommandoen, søger den i den angivne mappe og undermapper. Brug en af ​​følgende tre metoder til at ekskludere en undermappe i søgningen:

1. Beskæringsmuligheden

Til demonstration bruger vi linuxhint/ . Vi kan se, at det har tre undermapper som vist på følgende billede:

Når den bruges med -print, hjælper 'prune'-indstillingen med at udelukke alle specificerede undermapper, når du arbejder med 'find'-kommandoen. I det forrige billede kan vi bruge kommandoen 'find' og give stien til Linuxhint-mappen. Angiv derefter at ekskludere dir2 fra søgeoutputtet.

Vi udfører vores kommando som følger:

find /home/kyle/Desktop/linuxhint/ -sti /home/kyle/Desktop/linuxhint/dir2 -prune -o -print

Bemærk, hvordan dir2 ikke vises nogen steder i outputtet, hvilket bekræfter, at vi formåede at udelukke det.

Vi kan også udføre den samme kommando i en forkortet version som vist i følgende:

Du kan også udelukke adskillige mapper. Til det bruger vi muligheden -o. Følgende eksempel udelukker dir1 og dir3 for kun at forlade dir2. Hvis du er sikker på, at den fil eller mappe, du vil finde, ikke er i de andre mapper, reducerer denne mulighed søgeresultatet.

2. Via indstillingen 'Ikke'.

I søgeforespørgslen er det muligt at tilføje 'ikke' for at angive, hvilke mapper der skal ekskluderes. Dens implementering er mere ligetil end muligheden for sveske.

Her er syntaksen, der skal bruges:

find [sti] -type f -ikke -sti '*/mappe-til-ekskludere/*'

Antag, at vi vil udelukke dir1 i 'find'-søgeoutput, som vi implementerede med prune-indstillingen. Vi udfører kommandoen som følger:

Find . -type f -ikke -sti '*/dir2/*'

Vi får samme output som ved brug af sveske-muligheden. Den angivne mappe er udeladt; kun de resterende undermapper vises i søgeresultatet.

3. Via '!' Mulighed

Den sidste metode til at ekskludere mapperne i Linux 'find'-kommandoen er at tilføje '!' operatør. Den fungerer som 'ikke'-operatoren, og dens syntaks er næsten identisk.

find [sti] -type f ! -sti '*/mappe-til-ekskludere/*'

Antag, at vi gentager det tidligere eksempel for at udelukke dir2 ved at bruge '!' operatør. Vi får stadig det samme output. Kun en del af den kommando, vi bruger, er ændret.

Det er de tre måder at udelukke mapperne i Linux 'find' kommandoen.

Konklusion

Linux 'find'-kommandoen er praktisk til hurtigt at finde filerne og mapperne. Det bliver bedre, da du kan udelukke mapperne i din søgekommando for at reducere søgeoutputtet. For at udelukke mapperne kan du bruge 'svesken', 'ikke' eller '!' muligheder. Dette indlæg diskuterede, hvordan de tre muligheder fungerer med de givne eksempler på at ekskludere mapperne. Prøve det!