Jsou seznamy pouze rekurzivně v Linuxu?

Is List Only Directories Recursively Linux



Slovo rekurzivní odkazuje na skutečnost, že příkazy operačního systému Linux nebo Unix se zabývají obsahem složek, a pokud složka obsahuje podsložky a dokumenty, instrukce stále funguje se všemi těmito dokumenty (rekurzivně). Je možné, že podřízený adresář má vlastní sadu souborů a složek (například velké složky) atd. K rekurzivnímu procházení každé složky použijete různé pokyny pro Linux, než se dostanete na okraj zadané složky. Na této úrovni se pokyny pro Linux vrátí k odbočce ze stromu a postup zopakují pro všechny existující podsložky. V tomto tutoriálu se naučíte všechny metody rekurzivního výpisu adresářů.

Příklady adresářů Simple List

Nejprve musíte vědět, jak vypsat všechny adresáře z vašeho systému Linux pomocí jednoduchého příkazu list. Otevřete terminál příkazového řádku a zkuste příkaz ls níže vypsat pouze adresáře. Zobrazí se nejen seznam adresářů, ale celkový počet podsložek a souborů, které se v nich nacházejí. Výstup zobrazuje složky s informacemi o jejich vlastníkovi, skupině, oprávněních ke čtení a zápisu a datu vytvoření složek.







$ ls -l



Chcete -li zobrazit seznam všech adresářů a souborů ve vašem systému Linux, musíte v příkazu list místo jednoduchého -l použít -la. Z tohoto důvodu spusťte aktualizovaný příkaz. Výstup zobrazuje všechny soubory a složky spolu s jejich dalšími informacemi.



$ ls -la





Chcete -li jednoduše vypsat adresáře bez dalších informací, vyzkoušejte níže uvedený příkaz následovaný příznakem -d.

$ ls –d * /



Stejný příkaz můžete s malými úpravami použít také k vypsání složek spolu s jejich dalšími informacemi. Stačí do tohoto příkazu přidat příznak -l takto:

$ ls –l –d * /

Chcete-li zkontrolovat pouze celkový počet souborů v konkrétním domovském adresáři, zkuste níže uvedený příkaz v prostředí. Získáte celkový počet souborů ve vašem operačním systému Linux.

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

Příklad výpisu adresářů rekurzivně

V Linux Systems jsou k dispozici různé typy rekurzivních příkazů, které lze použít k rekurzivnímu výpisu adresářů. Chcete -li porozumět každému z nich samostatně, předpokládejte, že máte v adresáři Linux 5 souborů s názvem Documents.

Seznam rekurzivně pomocí příznaku -lR

První metoda, kterou lze v dotazu použít k rekurzivnímu výpisu všech adresářů vašeho systému Linux, je parametr -lR. Po provedení níže uvedeného příkazu seznam zobrazí seznam všech složek a jejich podsložek spolu s podrobnostmi o bonusech, jak je uvedeno ve výstupu.

$ ls -lR

Pojďme rekurzivně vyjmenovat všechny soubory nebo složky z určité konkrétní složky nebo adresáře vašeho systému Linux. Za tímto účelem přidejte cestu umístění konkrétního adresáře a rekurzivně jej vypisujte. Pomocí následujícího aktualizovaného příkazu chceme rekurzivně vypsat všechny soubory a složky v adresáři Documents, které se nacházejí v domovském adresáři. Výstup zobrazí všechny soubory a složky ve složce Dokumenty spolu s dalšími informacemi.

$ ls –lR / domov / aqsayasin / dokumenty /

Seznam rekurzivně pomocí příkazu Najít

Ujasněte si, že ne všechny systémy Linux, např. MacOS, OS podobné Unixu, mají na výběr adresářů možnost -R. V takovém případě jsou pro splnění našich potřeb k dispozici další příkazy, kterými jsou příkaz find a print. V tomto příkazu poskytneme cestu ke složce spolu s využitím příkazu -ls. Když je v příkazu použit -ls, znamená to, že také zobrazí dodatečné informace týkající se zbývajících souborů a složek konkrétního adresáře. Zkuste níže uvedený příkaz v shellu rekurzivně vypsat všechny soubory a složky v adresáři Documents.

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

Nyní musíte vyzkoušet stejnou instrukci v shellu s malou změnou. Vyhneme se použití příznaku -ls v tomto příkazu, abychom přestali zobrazovat další informace týkající se souborů. Proveďte níže uvedený dotaz v shellu a budete mít zobrazený výstup.

$ find/home/aqsayasin/Documents/-print

Seznam rekurzivně pomocí příkazu -du

Podívejme se na další příklad rekurzivně seznam souborů nebo adresářů jinou novou metodou. Tentokrát použijeme k dosažení našeho cíle příkaz -du. Tento příkaz obsahuje příznak -a. Spolu s příznaky musíme také určit umístění adresáře. Provedeme níže uvedenou instrukci v terminálním shellu, abychom rekurzivně vypsali všechny složky nebo soubory adresáře Documents. Výstup ukazuje 5 záznamů, jak je uvedeno níže. Můžete vidět, že tento příkaz také ukazuje počet kousnutí v každém souboru.

$ du –a / home / aqsayasin / dokumenty /

Seznam rekurzivně pomocí příkazu stromu

V neposlední řadě máme velmi jednoduchou a snadno použitelnou metodu příkazů stromu k rekurzivnímu výpisu souborů nebo složek. V tomto příkazu zatím nebudeme používat žádný příznak. Spolu se stromem klíčových slov musíte zadat umístění adresáře. Ukažme si to na příkladu pomocí níže uvedeného příkazu. Výstup ukazuje výstup rozvětveného stromu adresáře Dokumenty. Na výstupu je 0 adresářů a 5 souborů.

$ strom/domov/aqsayasin/dokumenty/

Zkusme stejný příkaz stromu s jiným umístěním. Tentokrát rekurzivně vypisujeme složky adresáře „Home“ uživatele aqsayasin. Výstup ukazuje větve složky Home, které mají celkem 14 různých složek, podsložek a 5 souborů.

$ strom/domov/aqsayasin/

Závěr

Vyzkoušeli jsme všechny rekurzivní metody k rekurzivnímu výpisu adresářů a souborů, např. -LR flag, find and print, du a tree command