logo

Jak rekurzivně najít všechny soubory v aktuálních a podsložkách na základě shody zástupných znaků v Linuxu

Procházení stromem adresářů za účelem nalezení souborů je běžnou operací, kterou provádí většina softwaru pro správu souborového systému. Tento nástroj je ve většině operačních systémů ve formě příkazů příkazového řádku. V tomto článku se dozvíte, jak najít soubory pomocí Wildcard Matching v operačním systému Linux.

Rekurzivní hledání souborů ve stromu adresářů

Použití příkaz najít bude určeno k provedení úkolu. Příkaz ‚s‘ se používá k vyhledávání souborů v hierarchii adresářů. Stránka nápovědy příkazu find je následující:



Příkaz find a přepínač -name vyhledá požadovaný soubor v adresáři. Přepínač poskytuje název (nebo vzor) pro příkaz find, který má hledat. Konečný příkaz by tedy byl

find -name 'Re_Pattern'>

Jako výsledek by se zobrazil jakýkoli soubor s Re_Pattern v názvu souboru. Vzor může obsahovat doslovné znaky nebo posloupnost zástupných výrazů. V těchto vzorech se používají dva zástupné znaky:

nit.zničit

* => Libovolný znak kolikrát (nemusí ani být přítomen)



? => Měla by být přítomna jedna postava

Adresář, ve kterém budou operace prováděny, je:

urfi javed

Adresář obsahující některé soubory a podadresáře



Pro zjednodušení jsou podadresáře prázdné. Jakýkoli vytvořený efekt by tedy byl viditelný pouze na souboru v tomto adresáři. Soubor, který by se v adresáři hledal, by byl příkaz apple, který by byl:

find -name 'apple'>

Protože pouze jeden soubor v adresáři měl název apple, ve výstupu se zobrazil pouze 1 název. Ale pokud k tomu přidáte zástupný znak, například * (hvězdička):

find -name '*apple*'>

skončili jsme s výsledkem všech souborů obsahujících apple ve svém názvu. Podobně by mohla být použita kombinace takových zástupných znaků. Př. Pokud chceme získat všechny soubory, které mají ve svém názvu 4 znaky, příkaz by byl:

find -name '????'>

S použitím těchto dvou zástupných znaků by tedy mohla být vytvořena řada vzorů pro rozpoznání několika názvů souborů. Příkaz find obsahuje další přepínače, které umožňují větší zefektivnění výstupu.