[[Vorlage(Getestet, general)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] [:Programme_starten#Direkt-im-Terminal-in-der-Konsole: Starten von Programmen im Terminal] }}} [[Inhaltsverzeichnis(1)]] [[Bild(Wiki/Icons/terminal.png, 48, left)]] '''tree''' ist ein Programm, mit dem man sich eine Verzeichnishierarchie [wikipedia:Rekursion:rekursiv] als [wikipedia:Baumstruktur:] anzeigen lassen kann. Das Programm verdeutlicht die Verzweigung der Verzeichnisse und unterscheidet sich damit stark von [:ls:], mit dem lediglich der Inhalt von Verzeichnissen aufgelistet wird. = Installation = Um das Programm verwenden zu können, muss es zunächst installiert werden [1], da es nicht Teil der Standardinstallation ist. {{{#!vorlage Paketinstallation tree, universe }}} = Syntax = Da tree ein Kommandozeilenwerkzeug ist, muss es im Terminal[2] gestartet werden[3]: {{{#!vorlage Befehl tree [OPTIONEN] [VERZEICHNIS] }}} = Optionen = Im Folgendem eine unvollständige Auflistung von häufig genutzten Parametern. Weitere Parameter können in der [:Manpage:] des Programms eingesehen werden. {{{#!vorlage Tabelle Optionen +++ Parameter Bedeutung +++ `-a` Zeigt auch versteckte Verzeichnisse an +++ `-d` Zeigt nur Verzeichnisse an +++ `-l` Folgt [:ln:symbolischen Links] +++ `-f` Zeigt für jedes Objekt den vollen Pfad an +++ `-x` Bleibt auf dem aktuellen Dateisystem +++ `-L WERT` Hiermit kann die Tiefe des Baums festgelegt werden +++ `-P MUSTER` Zeigt nur Objekte an, die dem Muster entsprechen +++ `-I MUSTER` Zeigt Objekte, die dem Muster entsprechen, nicht an +++ `--prune` Lässt leere Verzeichnisse aus +++ `--filelimit WERT` Zeigt Verzeichnisse mit mehr als WERT Objekten nicht an +++ `-o DATEINAME` Schreibt die Ausgabe in eine Datei +++ Dateioptionen +++ Option Bedeutung +++ `-p` Listet auch Dateityp und -rechte auf +++ `-u` Listet auch den Benutzer jeder Datei auf +++ `-g` Listet auch die Gruppe jeder Datei auf +++ `-s` Gibt auch die jeweiligen Dateigrößen aus +++ `-h` Zeigt Dateigrößen in KB, MB, GB, usw. anstatt von Bytes an +++ `--si` Nutzt [wikipedia:SI-Präfixe:] +++ `--du` Zeigt Größe der Datei sowie Unterordner an (wie [:du:]) +++ Sortierungsoptionen +++ Option Bedeutung +++ `-r` Umgekehrte alphabetische Reihenfolge +++ `-t` Nach dem Zeitpunkt der letzten Bearbeitung sortieren +++ `-U` Unsortiert (so wie im Verzeichnis tatsächlich sortiert) +++ `--dirsfirst` Listet zunächst Verzeichnisse auf +++ Optionen der Darstellung +++ Option Bedeutung +++ `-i` Keine Linien anzeigen +++ `-n` Keine Farben anzeigen +++ `-C` Immer Farben anzeigen (nutzt die Variable '''LS_COLORS''') +++ Ausgabeoptionen +++ Option Bedeutung +++ `-X` Als [wikipedia:XML:]-Datei ausgeben +++ `-H` Ausgabe in HTML-Datei schreiben (mit [wikipedia:Hyperlink:Hyperlinks]) +++ `-T TITEL` Spezifiziert den Titel und die Überschrift für die HTML-Ausgabe +++ `--nolinks` Schaltet [wikipedia:Hyperlink:Hyperlinks] in der HTML-Ausgabe ab }}} = Beispiele = == Allgemeiner Aufruf == Beim Aufruf ohne Parameter zeigt `tree` die Struktur des aktuellen Verzeichnisses ohne weitere Informationen: {{{#!vorlage Befehl tree }}} Die daraus folgende Ausgabe: {{{ . ├── änderungen.png ├── Anteil_png_jpg.ods ├── artikelliste ├── bilder.csv ├── bilder.gnuplt ├── geheim │ └── streng.geheim ├── nutzer.png ├── ohne.csv ├── ohne.csv~ ├── png_jpg.png ├── report.csv ├── Wikiaktion_Graphen.ods └── wikiaktion.inyoka 1 directory, 13 files }}} == Verzeichnisse bestimmter Ebenen == Der folgende Befehl zeigt die (gekürzte) Baumstruktur von '''/usr'''. Dabei werden nur Verzeichnisse angezeigt und max. zwei Ebenen tief: {{{#!vorlage Befehl tree -dL 2 /usr }}} Die daraus folgende Ausgabe: {{{ /usr ├── bin │ └── X11 -> . ├── games ├── include │ ├── arpa │ ├── asm-generic │ ├── c++ │ ├── dbus-1.0 │ ├── drm │ ├── gnucash │ ├── gstreamer-0.10 │ ├── i386-linux-gnu │ ├── linux │ ├── mm │ ├── mtd │ ├── nautilus-sendto │ ├── net │ ├── netash │ ├── netatalk │ ├── netax25 │ ├── neteconet │ ├── netinet │ ├── netipx │ ├── netiucv │ ├── netpacket │ ├── netrom │ ├── netrose │ ├── nfs │ ├── protocols │ ├── python2.7 │ ├── python3.2mu │ ├── rdma │ ├── rpc │ ├── rpcsvc │ ├── scsi │ ├── sound │ ├── video │ ├── X11 │ ├── xchat │ ├── xen │ ├── xfce4 │ └── xorg ├── lib │ ├── accountsservice │ ├── adobe-flashplugin │ ├── apg │ ├── apr-util-1 │ ├── apt │ ├── aqbanking │ ├── aspell │ ├── atlas-base │ ├── at-spi2-core │ ├── avahi │ ├── binfmt-support │ ├── blueman │ ├── canto │ ├── catdoc │ ├── cli │ ├── compat-ld │ ├── cone │ ├── ConsoleKit │ ├── control-center-1 │ ├── coreutils │ ├── cups │ ├── cups-pk-helper │ ├── dbus-1.0 │ ├── dconf … │ ├── webkitgtk-1.0-0 │ ├── webkitgtk-3.0-0 │ ├── weechat │ ├── X11 │ ├── xchat │ ├── xfce4 │ ├── xfce4-dict │ ├── xfce4-verve-plugin │ ├── xorg │ ├── xscreensaver │ ├── xulrunner │ ├── xulrunner-addons │ ├── zeitgeist │ └── zsh ├── local │ ├── bin │ ├── etc │ ├── games │ ├── include │ ├── lib │ ├── man -> share/man │ ├── sbin │ ├── share │ └── src ├── sbin ├── share │ ├── a2ps │ ├── abiword-2.9 │ ├── accounts │ ├── aclocal │ ├── acpi-support │ ├── adduser │ ├── adium │ ├── alacarte │ ├── alsa │ ├── alsa-base │ ├── app-install │ ├── application-registry │ ├── applications … │ ├── software-center │ ├── software-properties │ ├── sounds │ ├── speech-dispatcher │ ├── speedcrunch │ ├── ssl-cert │ ├── state │ ├── synaptic │ ├── system-config-printer │ ├── system-tools-backends-2.0 │ ├── sysv-rc │ ├── tabset │ ├── tcltk │ ├── telepathy │ ├── Terminal │ ├── terminator │ ├── terminfo │ ├── tesseract-ocr │ ├── tex-common │ ├── texinfo │ ├── texlive │ ├── texlive-bin │ ├── texmf │ ├── themes │ ├── thumbnailers │ ├── Thunar │ ├── transmission │ ├── tudu │ ├── ubuntu-drivers-common │ ├── ubuntu-release-upgrader │ ├── ufw │ ├── unattended-upgrades │ ├── unity-greeter │ ├── update-manager │ ├── update-notifier │ ├── usb-creator │ ├── usb_modeswitch │ ├── vim │ ├── vlc │ ├── vrms │ ├── vte │ ├── webkitgtk-1.0 │ ├── webkitgtk-3.0 │ ├── wpgen │ ├── X11 │ ├── xfce4 │ ├── xfce4-notes-plugin │ ├── xfig │ ├── xfwm4 │ ├── xgreeters │ ├── xml │ ├── xml-core │ ├── xscreensaver │ ├── xserver-xorg │ ├── xsessions │ ├── xubuntu │ ├── xubuntu-docs │ ├── xul-ext │ ├── yelp │ ├── yelp-xsl │ ├── zenity │ ├── zenmap │ ├── zim │ ├── zoneinfo │ └── zsh └── src ├── linux-headers-3.5.0-22 ├── linux-headers-3.5.0-22-generic ├── linux-headers-3.5.0-23 ├── linux-headers-3.5.0-23-generic └── Ralink_2860sta-2.4.0.0 648 directories }}} == HTML-Ausgabe == Das folgende Beispiel nutzt [wikipedia:Hyperlink:Hyperlinks]. Da das Verzeichnis '''/var/log''' gewählt wurde, sollten die meisten Links auf jedem Linux-System funktionieren. Die Ausgabe ist farbig (`-C`), zeigt Rechte, Eigentümer und Gruppe an (`-pug`) sowie die Größen der Dateien (`-s`) in gut lesbarer Form (`-h`). Das Verzeichnis, dessen Baum gebildet wird, ist '''/var/log'''. Die Ausgabe wird in eine HTML-Datei geschrieben. Dabei ist `file:///var/log` die Wurzel für alle Links, das heißt es wird immer auf die Dateien des aktuellen System gelinkt. Es kann aber auch der Link zu einem Webserver oder FTP-Server sein. Der Name der Ausgabe wird über `-o` festgelegt. {{{#!vorlage Befehl tree -Cpugsh /var/log -H "file:///var/log" -o ~/tree.html }}} Ausgabedatei für den obigen Befehl: [[Anhang(tree.html)]] {dl} == Alternative mit ls == Auch ohne tree kann man mit [:ls:], [:grep:] und [:sed:] eine ähnliche Ausgabe erzeugen. Allerdings ist der dazu benötigte Befehl deutlich komplexer: {{{#!vorlage Befehl ls -R ORDNER | grep ':$' | sed -e 's/:$//' -e 's/[^\/]*\//| /g' -e 's/| \([^|]\)/|–– \1/g' }}} [http://www.thomas-krenn.com/de/wiki/Linux_Verzeichnisbaum_mit_dem_tree_Kommando_anzeigen Quelle] {de} = Links = * [http://mama.indstate.edu/users/ice/tree/ Projektseite] {en} * [man:tree:] {en} - Manpage des Programms * [:Shell/Befehlsübersicht:] {Übersicht} Übersicht über verschiedene Shell-Befehle #tag: System, Shell