IT Blok

kutilovo živobytí kromě www.msi-elektro.cz

Zobrazení stromové struktury adresáře v Linuxu

Občas se hodí si zobrazit stromovou strukturu nějakého adresáře. Zatím co souborové managery typu Midnight Commander aj. to nabízejí jako jednu ze svých funkcí, můžeme si toto zobrazení nastavit i v klasické konzoli.

Potřebujeme k tomu program tree. Ten si budeme muset nejspíš doinstalovat.

Instalace programu tree ve RHEL, CentOS a Fedora:

$ yum install tree

Instalace programu tree v Debian, Ubuntu a Mint:

$ sudo apt-get install tree

Instalace programu tree na Apple OS X (než ho Apple úplně zařízne):

$ brew install tree

Možné způsoby zápisu příkazu tree je následující:

$ tree
$ tree /cesta/k/adresáři
$ tree [možnosti(options)]
$ tree [možnosti] /cesta/k/adresáři

Takže pokud si chceme zotrazit obsah adresáře /etc zadáme příkaz takto:

$ tree /etc

Příklad výstupu (zkrácený)

/etc
|-- ConsoleKit
|   |-- run-seat.d
|   |-- run-session.d
|   `-- seats.d
|       `-- 00-primary.seat
|-- DIR_COLORS
|-- DIR_COLORS.256color
|-- DIR_COLORS.lightbgcolor
|-- DIR_COLORS.xterm
|-- NetworkManager
|   `-- dispatcher.d
|       |-- 00-netreport
|       |-- 05-netfs
|       |-- 10-dhclient
|       `-- 13-named
|-- TIVGUID
|-- X11
|   |-- applnk
|   |-- fontpath.d
|   `-- prefdm
|-- acpi
|   |-- actions
|   |   `-- power.sh
|   `-- events
|   |-- power.conf
|   `-- video.conf
|-- adjtime

V této „surové“ podobě příkaz zobrazí stromovou strukturu do jakékoliv hloubky i včetně obsažených souborů. Proto u složitějších adresářů byvá výstup hodně nepřehledný.

Proto je třeba použít možnosti (options) příkazu, kterými můžeme nastavit potřebné parametry.

Příkaz zadaný takto

$ tree -a /etc

zobrazí všechny soubory v adresáři /etc a jeho podadresářích (a to včetně skrytých souborů, které bez tohoto parametru nejsou vidět).

Příkaz zadaný takto

$ tree -d -L 2 /etc

zobrazí pouze adresáře a podadresáře v /etc a to do hloubky dvou úrovní (parametr -L 2).

Příkaz zadaný takto

$ tree -CL 2 /etc

zobrazí obsah /etc do hloubky dvou úrovní, jen výstup bude barevný

Obarvený příklad stromového výpisu adresáře

Obarvený příklad stromového výpisu adresáře

Pokud chceme výstup do souboru, přidáme příkaz k přesměrování do souboru, tedy:

$ tree -d -L 2 /etc > soubor.txt

Kompletní výpis možností (options) příkazu tree je zde:

parametr popis

-a

Vypíše všechny soubory

-d

Vypíše pouze adresáře

-l

Symbolické odkazy se zobrazí jako adresáře

-f

Vypíše celou cestu ke každému souboru

-i

Nepoužije odsazení řádků

-q

Vypíše netisknutelné znaky, jako je „?“.

-N

Vypíše netisknutelné znaky, tak jak jsou.

-p

Vypíše oprávnění u každého adresáře a souboru.

-u

Zobrazí vlastníka nebo UID číslo souboru.

-g

Zobrazí skupinu, vlastníka nebo GID číslo souboru.

-s

Vypíše velikost každého souboru v bytech.

-h

Vypíše velikost každého souboru v čitelnější podobě pro člověka.

-D

Vypíše datum poslední úpravy.

-F

Připojí „/“, „=“, „*“ nebo „|“ podle příkazu ls -F.

-v

Seřadí soubory alfanumericky podle verze.

-r

Seřadí soubory v obráceném alfanumerickém pořadí.

-t

Seřadí soubory podle času poslední úpravy.

-x

Zůstane pouze v aktuálním souborovém systému (FS).

-L úroveň

Určí hloubku zobrazení adresářů a souborů.

-A

Vypíše grafické větvení pomocí ANSI znaků.

-S

Vypíše grafické větvení pomocí ASCII znaků.

-n

Vypne barevné rozlišení výpisu (přepíše parametr -C).

-C

Zapne barevné rozlišení výpisu.

-P maska

Zobrazí pouze ty soubory, které odpovídají zadané masce.

-I maska

Zobrazí všechny soubory, kromě těch, které odpovídají zadané masce.

-H

Výstup bude v HTML formátu.

-T řetězec

Přepíše výchozí HTML titulek a nadpis H1 zadaným řetězcem.

-R

Znovu vykreslí strom, když se dostane k nejvyššímu adresáři.

-o soubor

Výstup přesměruje do souboru namísto stdout.

–inodes

Vypíše inode číslo ke každému souboru.

–device

Vypíše ID číslo jednotky, pod kterou soubor patří.

–noreports

Vypne vypisování počtu souborů/adresářů na konci každého stromu.

–nolinks

Vypne hypertextové odkazy v HTML výstupu.

–dirfirst

Seřadí adresáře před soubory.

–charset X

Použije znakovou sadu X pro HTML.

–filelimit #

Vypíše jen určitý počet souborů v adresáři.

Použití je velmi jednoduché a díky stromové struktuře, získáme přehledný výpis daného adresáře.