A „rekurzív” kifejezés arra a tényre utal, hogy egy Linux vagy Unix operációs rendszer parancsai a mappák tartalmával foglalkoznak, és ha egy mappának vannak almappái és dokumentumai, akkor az utasítás továbbra is az összes dokumentummal működik (rekurzívan). Lehetséges, hogy a gyermekkönyvtárnak saját fájl- és mappakészlete van (például nagy mappák), így tovább és így tovább. Különböző Linux-utasításokat használ az egyes mappák rekurzív áthaladásához, mielőtt a megadott mappa szélére kerülne. Ezen a szinten a Linux utasításai visszatérnek a fa kikapcsolására, és megismételik a folyamatot minden létező almappánál. Ebben az oktatóanyagban megismerheti az összes módszert a könyvtárak rekurzív felsorolására.
Példák az egyszerű listakatalógusokra
Először is tudnia kell, hogyan sorolja fel az összes könyvtárat a Linux rendszeréből az egyszerű lista paranccsal. Nyissa meg a parancssori terminált, és próbálkozzon az alábbi „ls” paranccsal, hogy csak a könyvtárakat sorolja fel. Nem csak a könyvtárakat sorolja fel, hanem az azokban található almappák és fájlok teljes számát is. A kimenet megmutatja a mappákat a tulajdonosukra, a csoportjukra, az olvasási és írási jogosultságukra, valamint a mappák létrehozásának dátumára vonatkozó információkkal.
$ ls -l
Az összes könyvtár és fájl felsorolásához a Linux rendszerben a "-la" szót kell használnia az egyszerű "-l" helyett a list parancsban. Ezért hajtsa végre a frissített parancsot. A kimenet az összes fájlt és mappát megjeleníti a további információkkal együtt.
$ ls -la
A könyvtárak egyszerű felsorolásához további információk nélkül próbálkozzon az alábbi paranccsal, majd a „-d” jelzővel.
$ ls -d * /
Ugyanazt a parancsot használhatja kis módosítással a mappák és azok kiegészítő információinak felsorolásához. Csak hozzá kell adnia az „-l” jelzőt ehhez a parancshoz az alábbiak szerint:
$ ls -l -d * /
Ha csak az adott házkönyvtárban található fájlok teljes számát szeretné ellenőrizni, próbálkozzon az alább bemutatott paranccsal a shellben. Megkapja a fájlok teljes számát a Linux operációs rendszerében.
$ ls -l | egrep -v '^ d'
Példa a könyvtárak listázására rekurzív módon
Különböző típusú rekurzív parancsok érhetők el a Linux rendszerekben, amelyek felhasználhatók a könyvtárak rekurzív felsorolására. Ha mindegyiket külön-külön szeretnénk megérteni, tegyük fel, hogy 5 fájl van a Linux könyvtárban, „Documents” néven.
Rekurzív felsorolás az „-lR” jelző használatával
Az első módszer, hogy a lekérdezésben az „-lR” jelzőt használja a Linux rendszer összes könyvtárának rekurzív felsorolásához. Az alábbi lista parancs végrehajtása után felsorolja az összes mappát és almappájukat, valamint a bónusz részleteiket, amint az a kimenetben látható.
$ ls -lR
Csak rekurzív módon soroljuk fel az összes fájlt vagy mappát a Linux rendszerének bizonyos mappáiból vagy könyvtárából. Ehhez adja hozzá az adott könyvtár hely elérési útját a rekurzív felsoroláshoz. Rekurzívan fel akarjuk sorolni a „home” könyvtárban található „Documents” könyvtár összes fájlját és mappáját az alább frissített paranccsal. A kimenet a „Dokumentumok” mappában található összes fájlt és mappát, valamint annak további információit megjeleníti.
$ ls -lR / home / aqsayasin / Dokumentumok /
Rekurzívan sorolja fel a „Find” parancs használatával
Tisztázza magának, hogy nem minden Linux rendszer, pl.g., A macOS, a Unix-szerű operációs rendszer, választhatja a „-R” használatát a könyvtárak felsorolásához. Ebben az esetben további parancsok állnak rendelkezésre igényeink kielégítésére, amelyek a „find” és a „print” parancsok. Ebben a parancsban egy mappa elérési útját adjuk meg, az „-ls” parancs használatával együtt. Ha a parancsban „-ls” -t használunk, ez azt is jelenti, hogy az egy adott könyvtárban található fájlokkal és mappákkal kapcsolatos további információkat is megjeleníti. Próbálja ki az alábbi parancsot a shellben, hogy rekurzívan felsorolja a „Documents” könyvtár összes fájlját és mappáját.
$ find / home / aqsayasin / Documents / -print -ls
Most ugyanezt az utasítást kell kipróbálnia a shellben, kis változtatással. Kerüljük a „-ls” jelző használatát ebben a parancsban, hogy leállítsuk a fájlokkal kapcsolatos további információk megjelenítését. Hajtsa végre az alább felsorolt lekérdezést a héjban, és akkor megjelenik a kimenet.
$ find / home / aqsayasin / Documents / -print
Sorolja fel rekurzívan a „-du” parancs használatával
Nézzünk meg egy másik példát a fájlok vagy könyvtárak rekurzív felsorolására egy másik új módszerrel. Ezúttal a „-du” parancsot fogjuk használni célunk eléréséhez. Ez a parancs tartalmazza a „-a zászlót. A zászlókkal együtt meg kell adnunk a könyvtár helyét is. Hajtsuk végre az alábbi utasítást a terminálhéjban a „Documents” könyvtár összes mappájának vagy fájljának rekurzív felsorolásához. A kimenet az 5 rekordot mutatja, az alábbiak szerint. Láthatja, hogy ez a parancs megmutatja az egyes fájlokban található harapások számát is.
$ du -a / home / aqsayasin / Dokumentumok /
Sorolja fel rekurzívan a „fa” parancs használatával
Végül, de nem utolsósorban, egy nagyon egyszerű és könnyen használható „fa” parancs metódussal rendelkezünk a fájlok vagy mappák rekurzív felsorolásához. Eddig ebben a parancsban nem fogunk használni egyetlen zászlót sem. Meg kell adnia a könyvtár helyét a „fa” kulcsszóval együtt. Legyen egy példa az alább felsorolt paranccsal. A kimenet a „dokumentumok” könyvtár „fa” elágazó típusú kimenetét mutatja. 0 könyvtárat és 5 fájlt mutat a kimenetben.
$ tree / home / aqsayasin / Dokumentumok /
Próbáljuk meg ugyanazt a „fa” parancsot más helyszínnel. Ezúttal rekurzívan soroljuk fel az „aqsayasin” felhasználó „Home” könyvtárának mappáit. A kimenet a „Home” mappa ágait mutatja, amelyek összesen 14 különböző mappát, almappát és 5 fájlt tartalmaznak.
$ tree / home / aqsayasin /
Következtetés
Az összes rekurzív módszert kipróbáltuk a könyvtárak és fájlok rekurzív felsorolására, pl.g., „-LR” jelző, keresés és nyomtatás, du és fa parancs