logo

Kā rekursīvi atrast visus failus pašreizējā un apakšmapē, pamatojoties uz aizstājējzīmju atbilstību operētājsistēmā Linux

Pārvietošanās pa direktoriju koku, lai atrastu failus, ir izplatīta darbība, ko veic lielākā daļa failu sistēmas pārvaldības programmatūras. Šī utilīta lielākajā daļā operētājsistēmu ir komandrindas komandu veidā. Šajā rakstā jūs uzzināsit, kā Linux operētājsistēmā atrast failus, izmantojot aizstājējzīmju saskaņošanu.

Rekursīva failu atrašana direktoriju kokā

Izmantošana atrast komandu būtu paredzēts uzdevuma veikšanai. Komanda “s” tiek izmantota, lai meklētu failus direktoriju hierarhijā. Atrast komandas palīdzības lapa ir šāda:



Komanda Find un slēdzis -name meklēs vajadzīgo failu direktorijā. Slēdzis nodrošina meklēšanas komandas nosaukumu (vai modeli), kam jāpievērš uzmanība. Tādējādi pēdējā komanda būtu

find -name 'Re_Pattern'>

Rezultātā tiks parādīts jebkurš fails, kura nosaukumā ir Re_Pattern. Rakstā var būt burtiskas rakstzīmes vai aizstājējzīmju izteiksmju secība. Šādos modeļos tiek izmantoti divi aizstājējzīmes:

salīdziniet virknē

* => Jebkura rakstzīme neierobežotu skaitu reižu (var pat nebūt)



? => Vienam varonim jābūt klāt

Direktorija, kurā tiks veiktas darbības, ir:

Direktorija, kurā ir daži faili un apakšdirektoriji



Vienkāršības labad apakšdirektoriji ir tukši. Tādējādi jebkurš radītais efekts būtu redzams tikai failā šajā direktorijā. Fails, kas tiktu meklēts direktorijā, būtu apple, kura komanda būtu:

find -name 'apple'>

Tā kā tikai vienam failam direktorijā bija nosaukums apple, izvadē tika parādīts tikai 1 nosaukums. Bet, ja tajā iekļaujat aizstājējzīmi, piemēram, * (zvaigznīte):

find -name '*apple*'>

mēs nonācām pie rezultātu visiem failiem, kuru nosaukumā bija ābols. Līdzīgi var izmantot šādu aizstājējzīmju kombināciju. Piem. Ja mēs vēlamies iegūt visus failus, kuru nosaukumā ir 4 rakstzīmes, komanda būtu šāda:

binārās meklēšanas koka piemērs
find -name '????'>

Tādējādi, izmantojot šīs divas aizstājējzīmes, var izveidot modeļu masīvu vairāku failu nosaukumu atpazīšanai. Atrast komanda satur citus slēdžus, kas ļauj vairāk racionalizēt izvadi.