Vai Linux ir rekursīvi tikai direktoriju saraksts?

Is List Only Directories Recursively Linux



Vārds rekursīvs attiecas uz faktu, ka Linux vai Unix operētājsistēmas komandas nodarbojas ar mapju saturu, un, ja mapei ir apakšmapes un dokumenti, instrukcija joprojām darbojas ar visiem šiem dokumentiem (rekursīvi). Iespējams, ka pakārtotajam direktorijam ir savs failu un mapju komplekts (piemēram, lielas mapes) utt. Un tā tālāk. Jūs izmantosit dažādus Linux norādījumus, lai rekursīvi pārvietotos pa katrai mapei, pirms nokļūstat norādītās mapes malā. Šajā līmenī Linux instrukcijas atgriežas pie koka izslēgšanās un atkārto procesu visām esošajām apakšmapēm. Šajā apmācībā jūs uzzināsit visas metodes, kā rekursīvi uzskaitīt direktorijus.

Vienkāršu sarakstu direktoriju piemēri

Pirmkārt, jums jāzina, kā uzskaitīt visus Linux sistēmas direktorijus, izmantojot vienkāršo saraksta komandu. Atveriet komandrindas termināli un izmēģiniet zemāk esošo komandu, lai uzskaitītu tikai direktorijus. Tajā tiks uzskaitīti ne tikai katalogi, bet arī to apakšmapju un failu kopējais skaits. Izvade parāda mapes ar informāciju par to īpašnieku, grupu, lasīšanas un rakstīšanas tiesībām un mapju izveides datumu.







$ ls -l



Lai uzskaitītu visus direktorijus un failus savā Linux sistēmā, saraksta komandā ir jāizmanto -la, nevis vienkāršs -l. Tāpēc izpildiet atjaunināto komandu, lai to izdarītu. Rezultātā tiek parādīti visi faili un mapes, kā arī to papildu informācija.



$ ls -la





Lai vienkārši uzskaitītu direktorijus bez papildu informācijas, izmēģiniet zemāk esošo komandu, kam seko karogs -d.

$ ls – d * /



Varat arī izmantot to pašu komandu ar nelielām izmaiņām, lai uzskaitītu mapes kopā ar to papildu informāciju. Jums vienkārši jāpievieno karogs -l šajā komandā šādi:

$ ls – l –d * /

Lai pārbaudītu tikai kopējo failu skaitu konkrētajā mājas direktorijā, izmēģiniet zemāk esošo komandu apvalkā. Jūs iegūsit kopējo failu skaitu savā Linux operētājsistēmā.

$ ls –l | egrep –v ‘^ d’

Rekursīvi iekļaušanas direktoriju piemērs

Linux sistēmās ir pieejami dažādi rekursīvo komandu veidi, kurus var izmantot, lai rekursīvi uzskaitītu direktorijus. Lai saprastu katru no tiem atsevišķi, pieņemsim, ka jūsu Linux direktorijā ir 5 faili ar nosaukumu Dokumenti.

Sarakstiet rekursīvi, izmantojot -lR karogu

Pirmā metode, lai vaicājumā izmantotu karodziņu -lR, lai rekursīvi uzskaitītu visus jūsu Linux sistēmas direktorijus. Izpildot zemāk esošo saraksta komandu, tā uzskaitīs visas mapes un to apakšmapes kopā ar papildinformāciju, kā parādīts izvadē.

$ ls -lR

Vienkārši rekursīvi uzskaitīsim visus failus vai mapes no kādas konkrētas jūsu Linux sistēmas mapes vai direktorija. Šim nolūkam pievienojiet konkrētā direktorija atrašanās vietas ceļu, lai to rekursīvi uzskaitītu. Mēs vēlamies rekursīvi uzskaitīt visus direktorija failus un mapes Dokumenti, kas atrodas mājas direktorijā, izmantojot zemāk atjaunināto komandu. Rezultātā tiek parādīti visi mapes Dokumenti faili un mapes kopā ar papildu informāciju.

$ ls –lR / home / aqsayasin / Dokumenti /

Sarakstiet rekursīvi, izmantojot komandu Find

Paskaidrojiet sev, ka ne visām Linux sistēmām, piemēram, macOS, Unix līdzīgām operētājsistēmām, ir iespēja izmantot direktoriju sarakstu, izmantojot -R. Tādā gadījumā, lai apmierinātu mūsu vajadzības, ir pieejamas citas komandas, kas ir komanda atrast un drukāt. Šajā komandā mēs norādīsim ceļu uz mapi, kā arī komandas -ls izmantošanu. Ja komandā tiek izmantots -ls, tas nozīmē, ka tajā tiks parādīta arī papildu informācija par konkrētā direktorija failiem un mapēm. Izmēģiniet tālāk norādīto komandu čaulā, lai rekursīvi uzskaitītu visus direktorija Dokumenti failus un mapes.

$ find/home/aqsayasin/Dokumenti/-print -ls

Tagad jums ir jāizmēģina tā pati instrukcija apvalkā ar nelielām izmaiņām. Mēs izvairīsimies no karoga -ls izmantošanas šajā komandā, lai vairs nerādītu papildu informāciju par failiem. Izpildiet apvalkā zemāk uzskaitīto vaicājumu, un jums tiks parādīta izvade.

$ find/home/aqsayasin/Dokumenti/-print

Sarakstiet rekursīvi, izmantojot komandu -du

Apskatīsim citu piemēru, lai rekursīvi uzskaitītu failus vai direktorijus ar citu jaunu metodi. Šoreiz mēs izmantosim komandu -du, lai sasniegtu savu mērķi. Šī komanda satur karodziņu -a. Kopā ar karodziņiem mums ir jānorāda arī direktorija atrašanās vieta. Izpildīsim tālāk sniegto instrukciju termināla apvalkā, lai rekursīvi uzskaitītu visas direktorija Dokumenti mapes vai failus. Rezultātā tiek parādīti 5 ieraksti, kā parādīts zemāk. Jūs varat redzēt, ka šī komanda parāda arī katrā failā esošo kodumu skaitu.

$ du –a / home / aqsayasin / Dokumenti /

Saraksts rekursīvi, izmantojot koka komandu

Visbeidzot, mums ir ļoti vienkārša un viegli lietojama koka komandu metode, lai rekursīvi uzskaitītu failus vai mapes. Šajā komandā mēs līdz šim neizmantosim nevienu karodziņu. Jums jānorāda direktorija atrašanās vieta kopā ar atslēgvārdu koku. Ļaujiet mums to parādīt, izmantojot zemāk uzskaitīto komandu. Izvade parāda direktoriju Dokumenti koka sazarota tipa izvadi. Rezultātā tiek parādīts 0 direktoriju un 5 faili.

$ tree/home/aqsayasin/Dokumenti/

Izmēģināsim to pašu koka komandu ar citu atrašanās vietu. Šoreiz mēs rekursīvi uzskaitām lietotāja aqsayasin direktorija “Sākums” mapes. Rezultātā tiek parādītas mapes Home filiāles, kurās ir 14 dažādas mapes, apakšmapes un 5 faili.

$ koks/mājas/aqsayasin/

Secinājums

Mēs esam izmēģinājuši visas rekursīvās metodes, lai rekursīvi uzskaitītu direktorijus un failus, piemēram, -lR karodziņš, atrašana un drukāšana, du un koka komanda