logo

Hur man rekursivt hittar alla filer i nuvarande och undermappar baserat på jokerteckenmatchning i Linux

Att gå igenom ett katalogträd för att hitta filer är en vanlig operation som utförs av de flesta filsystemshanteringsprogram. Detta verktyg är i form av kommandoradskommandon i de flesta operativsystem. I den här artikeln kommer du att lära dig hur du hittar filer med Wildcard Matching i Linux operativsystem.

Rekursivt hitta filer i ett katalogträd

Användningen av hitta kommando skulle göras för att utföra uppgiften. Kommandot 's' används för att söka efter filer i en kataloghierarki. Hjälpsidan för find-kommandot är som följer:



Find-kommandot och omkopplaren -name kommer att leta efter den önskade filen i katalogen. Omkopplaren ger ett namn (eller mönster) för sökkommandot att hålla utkik efter. Därför skulle det sista kommandot vara

find -name 'Re_Pattern'>

Alla filer med Re_Pattern i sitt filnamn skulle visas som ett resultat. Mönstret kan antingen innehålla bokstavliga tecken eller en sekvens av jokerteckenuttryck. De två jokertecken som används i sådana mönster är:

hur man förvandlar en sträng till en int

* => Vilket tecken som helst hur många gånger som helst (kanske inte ens är närvarande)



? => En karaktär ska vara närvarande

Katalogen där operationerna skulle utföras är:

En katalog som innehåller några filer och underkataloger



För enkelhetens skull är underkatalogerna tomma. Därför skulle alla effekter som skapas endast vara synliga på filen i den här katalogen. Filen som skulle sökas efter i katalogen skulle vara apple kommandot som skulle vara:

find -name 'apple'>

Eftersom endast en fil i katalogen hade namnet apple, visades endast 1 namn i utgången. Men om du inkluderar ett jokertecken längs den, till exempel * (Asterisk):

vänster sammanfogning vs höger sammanfogning
find -name '*apple*'>

vi slutade med resultatet av alla filer som innehöll apple i dess namn. På liknande sätt kan en kombination av sådana jokertecken användas. Ex. Om vi ​​vill skaffa alla filer som har 4 tecken i namnet skulle kommandot vara:

find -name '????'>

Med hjälp av dessa två jokertecken kan därför en uppsättning mönster skapas för att känna igen flera filnamn. Find-kommandot innehåller andra växlar som möjliggör mer strömlinjeformning av utdata.