Ar „Linux“ tik katalogai yra rekursyviai?

Is List Only Directories Recursively Linux



Žodis rekursyvus reiškia tai, kad „Linux“ ar „Unix“ operacinės sistemos komandos tvarko aplankų turinį, o jei aplanke yra poaplankių ir dokumentų, instrukcija vis tiek veikia su visais tais dokumentais (rekursyviai). Gali būti, kad antrinis katalogas turi savo failų ir aplankų rinkinį (pavyzdžiui, didelius aplankus) ir pan. Naudodamiesi skirtingomis „Linux“ instrukcijomis, rekursyviai pereisite prie kiekvieno aplanko, prieš tai pereidami prie nurodyto aplanko krašto. Tuo lygiu „Linux“ instrukcijos grįžta į medžio išjungimą ir pakartoja procesą visiems esamiems poaplankiams. Šioje pamokoje sužinosite visus metodus, kaip rekursyviai išvardyti katalogus.

Paprastų sąrašų katalogų pavyzdžiai

Visų pirma, jūs turite žinoti, kaip išvardyti visus katalogus iš savo „Linux“ sistemos naudojant paprastą sąrašo komandą. Atidarykite komandų eilutės terminalą ir išbandykite žemiau pateiktą komandą, kad išvardytumėte tik katalogus. Jame bus išvardyti ne tik katalogai, bet ir bendras juose esančių poaplankių ir failų skaičius. Išvestyje rodomi aplankai su informacija apie jų savininką, grupę, skaitymo ir rašymo privilegijas bei aplankų sukūrimo datą.







$ ls -l



Norėdami išvardyti visus „Linux“ sistemos katalogus ir failus, sąrašo komandoje turite naudoti -la, o ne paprastą -l. Taigi, norėdami tai padaryti, vykdykite atnaujintą komandą. Išvestyje rodomi visi failai ir aplankai kartu su papildoma informacija.



$ ls -la





Norėdami tiesiog išvardyti katalogus be papildomos informacijos, išbandykite žemiau pateiktą komandą, po kurios eina vėliava -d.

$ ls –d * /



Taip pat galite naudoti tą pačią komandą su nedideliais pakeitimais, kad pateiktumėte aplankų sąrašą kartu su papildoma informacija. Jūs tiesiog turite pridėti -l vėliavą šioje komandoje taip:

$ ls –l –d * /

Norėdami patikrinti tik bendrą failų skaičių konkrečiame namų kataloge, išbandykite žemiau pateiktą komandą apvalkale. Jūs gausite bendrą failų skaičių savo „Linux“ operacinėje sistemoje.

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

Katalogų įtraukimo į rekursiją pavyzdys

„Linux“ sistemose yra įvairių tipų rekursinių komandų, kurios gali būti naudojamos rekursyviai išvardyti katalogus. Norėdami suprasti kiekvieną iš jų atskirai, tarkime, kad „Linux“ kataloge, pavadintame „Dokumentai“, yra 5 failai.

Sąrašas rekursyviai naudojant -lR vėliavą

Pirmas būdas tai padaryti naudojant užklausoje -lR vėliavą rekursyviai išvardyti visus jūsų „Linux“ sistemos katalogus. Vykdant žemiau pateiktą komandą sąrašas, ji išvardys visus aplankus ir jų poaplankius kartu su papildoma informacija, kaip parodyta išvestyje.

$ ls -lR

Tiesiog rekursyviai išvardinkime visus failus ar aplankus iš tam tikro jūsų „Linux“ sistemos aplanko ar katalogo. Šiuo tikslu pridėkite konkretaus katalogo vietos kelią, kad jis būtų įtrauktas į rekursinį sąrašą. Mes norime rekursyviai išvardyti visus katalogo failus ir aplankus Dokumentai, esantys namų kataloge, naudodami žemiau atnaujintą komandą. Išvestyje rodomi visi failai ir aplankai aplanke Dokumentai kartu su papildoma informacija.

$ ls –lR / home / aqsayasin / Dokumentai /

Sąrašas rekursyviai naudojant komandą Rasti

Paaiškinkite sau, kad ne visos „Linux“ sistemos, pvz., „MacOS“, į „Unix“ panaši OS, gali pasirinkti –R katalogų sąrašui naudoti. Tokiu atveju mūsų poreikiams patenkinti yra ir kitų komandų, kurios yra komanda „rasti ir spausdinti“. Šioje komandoje mes nurodysime kelią į aplanką kartu su komandos -ls sverto panaudojimu. Kai komandoje naudojamas -ls, tai reiškia, kad ji taip pat parodys papildomą informaciją apie konkretaus katalogo failus ir aplankus. Išbandykite toliau nurodytą apvalkalo komandą, kad rekursyviai išvardytumėte visus katalogo „Dokumentai“ failus ir aplankus.

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

Dabar jūs turite išbandyti tą pačią instrukciją apvalkale, šiek tiek pakeisdami. Šioje komandoje nenaudosime vėliavos -ls, kad nustotume rodyti papildomos informacijos apie failus. Vykdykite toliau pateiktą užklausą apvalkale ir turėsite rodomą rezultatą.

$ find/home/aqsayasin/Dokumentai/-print

Sąrašas rekursyviai naudojant komandą -du

Pažvelkime į kitą pavyzdį, kaip rekursyviai išvardyti failus ar katalogus kitu nauju metodu. Šį kartą savo tikslui pasiekti naudosime komandą -du. Šioje komandoje yra vėliava -a. Kartu su vėliavomis turime nurodyti ir katalogo vietą. Vykdykime toliau pateiktą instrukciją terminalo apvalkale, kad rekursyviai išvardytume visus katalogo ar failų katalogo dokumentus. Išvestyje rodomi 5 jos įrašai, kaip parodyta žemiau. Matote, kad ši komanda taip pat rodo kiekviename faile esančių įkandimų skaičių.

$ du –a / home / aqsayasin / Dokumentai /

Sąrašas rekursyviai naudojant medžio komandą

Paskutinis, bet ne mažiau svarbus dalykas-mes turime labai paprastą ir lengvai naudojamą medžio komandų metodą rekursyviai išvardyti failus ar aplankus. Šioje komandoje kol kas nenaudosime jokios vėliavos. Turite nurodyti katalogo vietą kartu su raktinių žodžių medžiu. Turėkime pavyzdį naudodami žemiau pateiktą komandą. Išvestis rodo katalogo Dokumentai medžio šakotos rūšies išvestį. Išvestyje rodomas 0 katalogų ir 5 failai.

$ tree/home/aqsayasin/Dokumentai/

Pabandykime tą pačią medžio komandą su kita vieta. Šį kartą rekursyviai išvardijame vartotojo „aqsayasin“ katalogo „Pagrindinis“ aplankus. Išvestyje rodomos katalogo „Home“ šakos, turinčios iš viso 14 skirtingų aplankų, poaplankių ir 5 failus.

$ tree/home/aqsayasin/

Išvada

Mes išbandėme visus rekursinius metodus rekursyviai išvardyti katalogus ir failus, pvz., -LR vėliava, rasti ir spausdinti, du ir medžio komanda