A rekurzív szó arra a tényre utal, hogy egy Linux vagy Unix operációs rendszer parancsai a mappák tartalmával foglalkoznak, és ha egy mappa almappákkal és dokumentumokkal rendelkezik, az utasítás továbbra is működik az összes ilyen dokumentummal (rekurzívan). Lehetséges, hogy a gyermekkönyvtárnak saját fájl- és mappakészlete van (például nagy mappák), stb. És így tovább. Különböző Linux utasításokkal fog rekurzívan bejárni minden mappát, mielőtt a megadott mappa szélére kerül. Ezen a szinten a Linux utasítások visszatérnek a fa kikapcsolásához, és megismétlik a folyamatot minden létező almappához. Ebben az oktatóanyagban megtanulja a könyvtárak rekurzív felsorolásának minden módját.
Példák az egyszerű lista könyvtárakra
Először is tudnia kell, hogyan kell felsorolni a Linux rendszer összes könyvtárát az egyszerű list parancs segítségével. Nyissa meg a parancssori terminált, és próbálja ki az alábbi parancsot, hogy csak a könyvtárakat sorolja fel. Nem csak a könyvtárakat fogja felsorolni, hanem a bennük található almappákat és fájlokat is. A kimenet mutatja a mappákat a tulajdonosukra, csoportjukra, olvasási-írási jogosultságaikra és a mappák létrehozásának dátumára vonatkozó információkkal.
$ ls -l
A Linux rendszeren belüli összes könyvtár és fájl felsorolásához a lista parancsban az -la parancsot kell használni az egyszerű -l helyett. Ezért hajtsa végre a frissített parancsot. A kimenet mutatja az összes fájlt és mappát, valamint azok további információit.
$ ls -la
Ha egyszerűen fel szeretné sorolni a könyvtárakat további információk nélkül, próbálja ki az alábbi parancsot, majd a -d jelzőt.
$ ls –d * /
Ugyanezt a parancsot kis módosításokkal is használhatja a mappák listázásához további információkkal együtt. Csak be kell adnia az -l zászlót ebbe a parancsba az alábbiak szerint:
$ ls –l –d * /
Ha csak az adott otthoni könyvtárban található fájlok teljes számát szeretné ellenőrizni, próbálja meg a shellben az alábbi parancsot. Megkapja a Linux operációs rendszer összes fájlját.
$ ls –l | egrep –v ’^ d’
Példa a könyvtárak listázására rekurzívan
A Linux rendszerekben különféle típusú rekurzív parancsok állnak rendelkezésre, amelyek segítségével a könyvtárak rekurzívan felsorolhatók. Mindegyik külön -külön történő megértéséhez tegyük fel, hogy 5 fájl van a Linux dokumentumtárában.
Rekurzív lista a -lR Flag használatával
Ennek első módja, ha a -lR jelzőt használja a lekérdezésben, hogy rekurzívan felsorolja a Linux rendszer összes könyvtárát. Az alábbi lista parancs végrehajtása után felsorolja az összes mappát és almappáit, valamint a bónusz részleteit, amint az a kimeneten látható.
$ ls -lR
Csak rekurzívan soroljuk fel az összes fájlt vagy mappát a Linux rendszerének egy bizonyos mappájából vagy könyvtárából. Ebből a célból adja hozzá az adott könyvtár hely elérési útját a rekurzív listázáshoz. Rekurzívan fel akarjuk sorolni a saját könyvtárban található Dokumentumok könyvtár összes fájlját és mappáját az alábbi frissített paranccsal. A kimenet megjeleníti a Dokumentumok mappában található összes fájlt és mappát, valamint a további információkat.
$ ls –lR / home / aqsayasin / Dokumentumok /
Rekurzív listázás a Find paranccsal
Tisztázza önmagával, hogy nem minden Linux -rendszer, például a macOS, a Unix -szerű operációs rendszer, választhat a -R használatával a könyvtárak felsorolásához. Ebben az esetben szükségleteink kielégítésére más parancsok is rendelkezésre állnak, ezek a find and print parancs. Ebben a parancsban megadunk egy elérési utat egy mappához, valamint az -ls parancs használatát. Ha az -ls parancsot használja, ez azt jelenti, hogy az adott könyvtárban található fájlokkal és mappákkal kapcsolatos további információkat is megjeleníti. Próbálja ki a shellben található alábbi parancsot, hogy rekurzívan felsorolja a Documents könyvtár összes fájlját és mappáját.
$ find/home/aqsayasin/Dokumentumok/-print -ls
Most ugyanazt az utasítást kell kipróbálnia a shellben egy kis változtatással. Kerüljük az -ls jelző használatát ebben a parancsban, hogy ne jelenítsük meg a fájlokkal kapcsolatos további információkat. Hajtsa végre az alább felsorolt lekérdezést a shellben, és megjelenik a kimenet.
$ find/home/aqsayasin/Dokumentumok/-print
Rekurzív lista a -du paranccsal
Nézzünk egy másik példát a fájlok vagy könyvtárak rekurzív listázá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 az -a zászlót. A zászlók mellett meg kell adnunk a könyvtár helyét is. Végezzük el az alábbi utasítást a terminálhéjon, hogy rekurzívan felsoroljuk a Dokumentumok könyvtár összes mappáját vagy fájlját. A kimenet a hozzá tartozó 5 rekordot mutatja, az alábbiak szerint. Láthatja, hogy ez a parancs az egyes fájlokban található harapások számát is mutatja.
$ du –a / home / aqsayasin / Dokumentumok /
Rekurzív listázás a Fa parancs használatával
Végül, de nem utolsósorban van egy nagyon egyszerű és könnyen használható fa parancs módszerünk a fájlok vagy mappák rekurzív listázására. Ebben a parancsban eddig semmilyen zászlót nem fogunk használni. Meg kell adnia a címtár helyét a kulcsszófával együtt. Lássunk egy példát erre az alább felsorolt parancs használatával. A kimenet a Dokumentumok könyvtár faágazó típusú kimenetét mutatja. 0 könyvtárat és 5 fájlt jelenít meg a kimenetben.
$ tree/home/aqsayasin/Dokumentumok/
Próbáljuk meg ugyanazt a fa parancsot egy másik helyen. 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 listázására, pl. -LR flag, find and print, du és tree parancs