Wie können wir helfen?
Linux – Der “tree” Command
Inhaltsverzeichnis
Installation
Um den tree
Befehl nutzen zu können, muss er zunächst auf dem System installiert werden, da er nicht standardmäßig Teil der meisten Linux-Distributionen ist. Unter Ubuntu kann dies mit dem folgenden Befehl erfolgen:
sudo apt-get install tree
Alternativ kann der tree
Befehl auch über apturl installiert werden.
Syntax
Die grundlegende Syntax des tree
Befehls lautet:
tree [OPTIONEN] [VERZEICHNIS]
Wenn kein Verzeichnis angegeben wird, zeigt tree
die Struktur des aktuellen Verzeichnisses an.
Optionen
Der tree
Befehl bietet eine Vielzahl von Optionen, die es ermöglichen, die Ausgabe anzupassen. Hier sind einige der häufigsten Optionen:
Option | Bedeutung |
---|---|
-a |
Zeigt auch versteckte Verzeichnisse an. |
-d |
Zeigt nur Verzeichnisse an. |
-l |
Folgt symbolischen Links. |
-f |
Zeigt für jedes Objekt den vollen Pfad an. |
-x |
Bleibt auf dem aktuellen Dateisystem. |
-L WERT |
Legt die Tiefe des Baums fest. |
-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
Zusätzlich zu den allgemeinen Optionen gibt es auch spezifische Optionen für die Anzeige von Datei- und Verzeichnisinformationen:
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 in Bytes an. |
--si |
Nutzt SI-Präfixe. |
--du |
Zeigt Größe der Datei sowie Unterordner an (wie du ). |
Sortierungsoptionen
Die Ausgabe kann auch nach verschiedenen Kriterien sortiert werden:
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
Die Darstellung der Baumstruktur kann ebenfalls angepasst werden:
Option | Bedeutung |
---|---|
-i |
Keine Linien anzeigen. |
-n |
Keine Farben anzeigen. |
-C |
Immer Farben anzeigen (nutzt die Variable LS_COLORS ). |
Ausgabeoptionen
Die Ausgabe kann in verschiedenen Formaten erfolgen:
Option | Bedeutung |
---|---|
-X |
Als XML-Datei ausgeben. |
-H |
Ausgabe in HTML-Datei schreiben (mit Hyperlinks). |
-T TITEL |
Spezifiziert den Titel und die Überschrift für die HTML-Ausgabe. |
--nolinks |
Schaltet Hyperlinks in der HTML-Ausgabe ab. |
Beispiele
Hier sind einige praktische Beispiele zur Verwendung des tree
Befehls:
Allgemeiner Aufruf
Beim Aufruf ohne Parameter zeigt tree
die Struktur des aktuellen Verzeichnisses an:
tree
Die Ausgabe könnte folgendermaßen aussehen:
.
├── ä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 maximal zwei Ebenen tief:
tree -dL 2 /usr
Die Ausgabe könnte folgendermaßen aussehen:
/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
Der folgende Befehl nutzt Hyperlinks. Das Verzeichnis /var/log
wird gewählt, sodass die meisten Links auf jedem Linux-System funktionieren:
tree -Cpugsh /var/log -H "file:///var/log" -o ~/tree.html
Die Ausgabe wird in eine HTML-Datei geschrieben, wobei file:///var/log
die Wurzel für alle Links ist. Der Name der Ausgabe wird über -o
festgelegt.