logo

Kako rekurzivno najti vse datoteke v trenutnih in podmapah na podlagi ujemanja nadomestnih znakov v Linuxu

Prehod skozi drevo imenikov za iskanje datotek je običajna operacija, ki jo izvaja večina programske opreme za upravljanje datotečnega sistema. Ta pripomoček je v večini operacijskih sistemov v obliki ukazov ukazne vrstice. V tem članku boste izvedeli, kako poiskati datoteke z uporabo nadomestnega ujemanja v operacijskem sistemu Linux.

Rekurzivno iskanje datotek v drevesu imenikov

Uporaba najdi ukaz bi bil narejen za opravljanje naloge. Ukaz 's' se uporablja za iskanje datotek v hierarhiji imenikov. Stran s pomočjo ukaza find je naslednja:



Ukaz find in stikalo -name poiščeta želeno datoteko v imeniku. Stikalo ponuja ime (ali vzorec) za ukaz find, na katerega morate biti pozorni. Zato bi bil končni ukaz

find -name 'Re_Pattern'>

Kot rezultat bi bila prikazana katera koli datoteka z Re_Pattern v imenu datoteke. Vzorec lahko vsebuje dobesedne znake ali zaporedje izrazov z nadomestnimi znaki. Dva nadomestna znaka, ki se uporabljata v takih vzorcih, sta:

java pridobiva trenutni datum

* => Kateri koli znak poljubno število krat (morda sploh ni prisoten)



? => En lik mora biti prisoten

Imenik, v katerem bi se izvajale operacije, je:

Imenik, ki vsebuje nekaj datotek in podimenikov



Zaradi poenostavitve so podimeniki prazni. Zato bi bil vsak ustvarjen učinek viden samo v datoteki v tem imeniku. Datoteka, ki bi jo iskali znotraj imenika, bi bila apple, ukaz za katerega bi bil:

find -name 'apple'>

Ker je samo ena datoteka v imeniku imela ime apple, je bilo v izhodu prikazano samo 1 ime. Če pa zraven vključite nadomestni znak, kot je * (zvezdica):

find -name '*apple*'>

na koncu smo dobili rezultat vseh datotek, ki vsebujejo apple v svojem imenu. Podobno bi lahko uporabili kombinacijo takih nadomestnih znakov. npr. Če želimo pridobiti vse datoteke, ki imajo v imenu 4 znake, bi bil ukaz:

find -name '????'>

Zato bi z uporabo teh dveh nadomestnih znakov lahko naredili niz vzorcev za prepoznavanje več imen datotek. Ukaz find vsebuje druga stikala, ki omogočajo večjo racionalizacijo izpisa.

kateri meseci so q1