Uteslut kataloger i Linux Find

Uteslut Kataloger I Linux Find



När du arbetar med Linux kan du få en instans där du snabbt vill hitta en fil i din maskin. Linux erbjuder olika sökkommandon inklusive kommandot 'hitta' som låter dig hitta en viss fil. Den enda nackdelen är att kommandot matar ut många skräp och filer. Men om du är säker på att målfilen inte finns i en given katalog kan du utesluta den i 'hitta'-kommandot för att minska sökresultatet.

Det här inlägget täcker vad 'hitta'-kommandot är och hur det fungerar. Vidare kommer vi att se hur du kan använda kommandot medan du utesluter katalogerna i Linux. Läs vidare!

Arbeta med kommandot Sök

Kommandot 'hitta' i Linux hjälper till att hitta filerna och katalogerna för att undvika att behöva hitta dem manuellt. Den använder följande syntax:







hitta

Här är ett exempel där vi försöker hitta en fil med namnet 'linuxhint.c' i hemkatalogen:





Utdata ger den absoluta sökvägen för att hitta målfilen. Anta att vi vill hitta filerna med hjälp av ett mönster. Låt oss säga att vi vill hitta alla textfiler i Dokument/ på vårt Linux-system. Vi anger vårt kommando som illustreras i följande:





Notera hur kommandot 'hitta' matar ut alla kataloger som innehåller textfilerna. Det är ett enkelt exempel på att använda kommandot 'hitta' i Linux.



Hur man utesluter katalogerna i Linux Find

När du kör kommandot 'hitta', söker den i den angivna katalogen och underkatalogerna. Använd någon av följande tre metoder för att utesluta en underkatalog i sökningen:

1. Beskärningsalternativet

För demonstration använder vi linuxhint/ . Vi kan se att den har tre underkataloger som visas i följande bild:

När det används med -print, hjälper alternativet 'prune' att utesluta alla specificerade underkataloger när du arbetar med kommandot 'find'. I den föregående bilden kan vi använda kommandot 'hitta' och ge sökvägen till Linuxhint-katalogen. Ange sedan att dir2 ska uteslutas från sökutgången.

Vi utför vårt kommando enligt följande:

hitta /home/kyle/Desktop/linuxhint/ -sökväg /home/kyle/Desktop/linuxhint/dir2 -prune -o -print

Lägg märke till hur dir2 inte visas någonstans i utgången vilket bekräftar att vi lyckats utesluta det.

Vi kan också köra samma kommando i en förkortad version som visas i följande:

Du kan också utesluta många kataloger. För det använder vi alternativet -o. Följande exempel exkluderar dir1 och dir3 för att endast lämna dir2. Om du är säker på att filen eller mappen som du vill hitta inte finns i de andra katalogerna, minskar det här alternativet sökresultatet.

2. Via alternativet 'Inte'.

I sökfrågan är det möjligt att lägga till 'inte' för att ange vilka kataloger som ska exkluderas. Dess genomförande är enklare än beskärningsalternativet.

Här är syntaxen att använda:

hitta [sökväg] -typ f -inte -sökväg '*/katalog-att-exkludera/*'

Anta att vi vill utesluta dir1 i sökresultatet 'hitta' som vi implementerade med beskärningsalternativet. Vi kör kommandot enligt följande:

hitta . -typ f -inte -sökväg '*/dir2/*'

Vi får samma utdata som när vi använder beskärningsalternativet. Den angivna katalogen är exkluderad; endast de återstående underkatalogerna visas i sökresultatet.

3. Via '!' Alternativ

Den sista metoden för att utesluta katalogerna i Linux 'hitta'-kommandot är att lägga till '!' operatör. Den fungerar som 'inte'-operatorn och dess syntax är nästan identisk.

hitta [sökväg] -typ f ! -sökväg '*/katalog-att-utesluta/*'

Anta att vi upprepar det tidigare exemplet för att utesluta dir2 med hjälp av '!' operatör. Vi får fortfarande samma resultat. Endast en del av kommandot som vi använder har ändrats.

Det är de tre sätten att utesluta katalogerna i Linux 'hitta'-kommandot.

Slutsats

Linux-kommandot 'hitta' är praktiskt för att snabbt hitta filerna och mapparna. Det blir bättre eftersom du kan utesluta katalogerna i ditt sökkommando för att minska sökresultatet. För att utesluta katalogerna kan du använda 'prune', 'not' eller '!' alternativ. Det här inlägget diskuterade hur de tre alternativen fungerar med de givna exemplen på att utesluta katalogerna. Testa!