Harting Development

Verzeichnisbaum in Linux sicher anzeigen

Lukas Fuchs vor 8 Monaten in  Sicherheit 3 Minuten Lesedauer

Befehl tree: Verzeichnisbaum in hierarchischer Ansicht anzeigen

Mit dem Befehl tree kannst du dir einen Verzeichnisbaum in einer übersichtlichen, hierarchischen Ansicht anzeigen lassen. Er bietet dir eine strukturierte Darstellung der Verzeichnisstruktur mit Unterverzeichnissen und Dateien.

Verwendung

Um tree zu verwenden, gib einfach den Befehl in deinem Terminal oder deiner Shell ein, gefolgt vom Pfad zum Verzeichnis, das du anzeigen möchtest:

tree /pfad/zum/verzeichnis

Wenn du keinen Pfad angibst, zeigt tree das aktuelle Verzeichnis an.

Optionen

tree bietet verschiedene Optionen zur Anpassung der Verzeichnisbaumanzeige:

  • -d: Zeigt nur Verzeichnisse an und unterdrückt Dateien.
  • -f: Zeigt sowohl Verzeichnisse als auch Dateien an.
  • -r: Aktiviert die rekursive Anzeige und zeigt Unterverzeichnisse und deren Inhalte an.
  • -l: Fügt erweiterte Informationen wie Dateigröße und Änderungsdatum hinzu.
  • -P: Fügt den Dateityp an den Dateinamen an.
  • -C: Färbt Dateinamen basierend auf ihrem Typ.

Beispiel

Betrachten wir das folgende Beispiel:

tree -d -P /home/benutzer

Dieser Befehl zeigt die Verzeichnisstruktur des Verzeichnisses /home/benutzer an, wobei nur Verzeichnisse angezeigt werden. Die Dateitypen werden an die Dateinamen angehängt, wie z. B.:

├── Dokumente (Verzeichnis)
├── Downloads (Verzeichnis)
├── Musik (Verzeichnis)
├── Bilder (Verzeichnis)
└── Videos (Verzeichnis)

Vorteile

Tree bietet im Vergleich zu anderen Verzeichnisbefehlsanzeigen folgende Vorteile:

  • Hierarchische Ansicht: Zeigt Verzeichnisse und Dateien in einer übersichtlichen, hierarchischen Struktur an.
  • Anpassbar: Mit verschiedenen Optionen kannst du die Anzeige an deine Bedürfnisse anpassen.
  • Nützlich für die Navigation: Hilft dir dabei, dich durch komplexe Verzeichnisstrukturen zu navigieren.

Befehl ls: Auflistung von Verzeichnisinhalten mit verschiedenen Optionen

Der Befehl ls ist ein vielseitiges Werkzeug in Linux, mit dem du Verzeichnisinhalte auflisten kannst. Er bietet eine breite Palette an Optionen, die dir die Anpassung der Ausgabe nach deinen spezifischen Anforderungen ermöglichen.

Grundlegende Optionen

Die grundlegendste Option von ls ist -l, die detaillierte Informationen zu jedem Eintrag auflistet, darunter Dateityp, Berechtigungen, Größe und Zeitstempel.

ls -l

Die Option -a zeigt auch versteckte Dateien und Verzeichnisse, die standardmäßig nicht angezeigt werden.

ls -a

Sortierung und Filterung

Du kannst die Ausgabe von ls auch nach verschiedenen Kriterien sortieren. Die Option -t sortiert beispielsweise nach Zeitstempel, während -S nach Dateigröße sortiert.

ls -t
ls -S

Darüber hinaus kannst du mit ls nach bestimmten Dateitypen filtern. Die Option -d listet beispielsweise nur Verzeichnisse auf, während -f nur Dateien auflistet.

ls -d
ls -f

Rekursive Anzeige

Mit der Option -R kannst du einen Verzeichnisbaum rekursiv anzeigen, sodass alle Unterverzeichnisse und deren Inhalte aufgelistet werden.

ls -R

Verwendung von Pipes

Pipes ermöglichen es dir, die Ausgabe eines Befehls als Eingabe für einen anderen Befehl zu verwenden. Mit Pipes kannst du die Ergebnisse von ls mit anderen Befehlen kombinieren, um erweiterte Verzeichnisanzeigen zu erstellen.

Beispielsweise kannst du ls mit dem Befehl grep kombinieren, um nach bestimmten Dateinamen zu filtern:

ls | grep "Textdatei"

Oder du kannst ls mit dem Befehl wc kombinieren, um die Anzahl der Dateien in einem Verzeichnis zu zählen:

ls | wc -l

Indem du ls mit anderen Befehlen kombinierst, kannst du die Möglichkeiten zur Anzeige und Manipulation von Verzeichnisinhalten in Linux erheblich erweitern.

Befehl find: Suche nach Dateien und Verzeichnissen mit erweiterten Filtern

Der Befehl find bietet dir eine leistungsstarke Methode, um Dateien und Verzeichnisse in Linux anhand bestimmter Kriterien zu suchen. Im Vergleich zu anderen Befehlen wie ls und tree ermöglicht find die Verwendung erweiterter Filter, die dir eine präzisere Suche ermöglichen.

Grundlagen des Befehls find

Die allgemeine Syntax für find lautet:

find [Suchpfad] -optionen [Ausdruck]
  • Suchpfad: Das Verzeichnis, in dem die Suche beginnen soll.
  • Optionen: Verschiedene Optionen, die die Sucheinstellungen steuern.
  • Ausdruck: Der Filter, der die Suchkriterien definiert.

Filteroptionen

find bietet eine Vielzahl von Filteroptionen, mit denen du nach spezifischen Dateiattributen suchen kannst:

  • -name Muster: Sucht nach Dateien, die mit dem angegebenen Muster übereinstimmen.
  • -type Typ: Sucht nach Dateien eines bestimmten Typs (z. B. Dateien, Verzeichnisse oder Links).
  • -size Grösse: Sucht nach Dateien mit einer bestimmten Größe (in Bytes, Kilobytes oder Megabytes).
  • -mtime Tage: Sucht nach Dateien, die innerhalb der letzten "Tage" geändert wurden.
  • -perm Berechtigungen: Sucht nach Dateien mit bestimmten Berechtigungen.

Verknüpfung von Filtern

Du kannst mehrere Filteroptionen kombinieren, um deine Suche einzugrenzen. Verwende dazu die Operatoren -and, -or und -not.

Beispiel: Suche nach allen Dateien im aktuellen Verzeichnis, die die Erweiterung .txt haben, größer als 1 MB sind und innerhalb der letzten Woche geändert wurden:

find . -name "*.txt" -size +1M -mtime -7

Rekursive Suche

Die Option -R (oder -recurse) ermöglicht es find, rekursiv durch das angegebene Verzeichnis und seine Unterverzeichnisse zu suchen. Dies ist hilfreich, wenn du eine umfassende Suche nach Dateien oder Verzeichnissen durchführen möchtest.

Ausgabe formatieren

Standardmäßig gibt find nur die Dateipfade der übereinstimmenden Elemente aus. Du kannst jedoch die Option -printf Format verwenden, um die Ausgabe zu formatieren.

Beispiel: Suche nach allen ausführbaren Dateien im aktuellen Verzeichnis und gib den Dateinamen, die Größe und die Berechtigungen aus:

find . -type f -executable -printf "%f %s %p\n"

Erweiterte Nutzung

find ist ein vielseitiger Befehl, der für verschiedene Aufgaben verwendet werden kann, z. B. das Auffinden von doppelten Dateien, das Löschen alter Protokolle oder das Verwalten von Berechtigungen. Weitere Informationen und Beispiele findest du in der Manpage von find.

Befehl du: Anzeige des Speicherverbrauchs von Verzeichnissen und Dateien

Der Befehl du (Abkürzung für "disk usage") gibt dir einen detaillierten Überblick über den Speicherplatz, der von Verzeichnissen und Dateien auf deinem System belegt wird. Dies kann dir dabei helfen, Speicherressourcen zu verwalten und zu entscheiden, welche Dateien oder Verzeichnisse gelöscht oder verschoben werden sollen.

Syntax

Die allgemeine Syntax für den Befehl du lautet:

du [Optionen] [Dateien oder Verzeichnisse]

Optionen

  • -a, --all: Zeigt den belegten Speicherplatz aller Dateien und Verzeichnisse an, einschließlich versteckter.
  • -h, --human-readable: Zeigt den Speicherplatz in für Menschen lesbaren Formaten wie KB, MB oder GB an.
  • -s, --summarize: Fasst den belegten Speicherplatz für jedes angegebene Verzeichnis oder jede angegebene Datei zusammen.
  • -x, --exclude: Schließt bestimmte Dateien oder Verzeichnisse von der Berechnung des Speicherplatzes aus.
  • -L, --follow: Folgt symbolischen Links und berechnet den Speicherplatz des Ziels anstatt des Links selbst.

Verwendung

Um den Speicherplatz eines einzelnen Verzeichnisses oder einer einzelnen Datei anzuzeigen, gib einfach den Pfad dazu als Argument für den Befehl du an. Beispielsweise zeigt der folgende Befehl den Speicherplatz des Verzeichnisses /home/benutzer/Dokumente an:

du /home/benutzer/Dokumente

Du kannst den Befehl du auch zum rekursiven Anzeigen des Speicherplatzes eines gesamten Verzeichnisbaums verwenden. Dazu verwendest du die Option -R (rekursiv). Beispielsweise zeigt der folgende Befehl den Speicherplatz jedes Verzeichnisses und jeder Datei im Verzeichnis /home/benutzer rekursiv an:

du -R /home/benutzer

Verketten von Befehlen mit Pipes

Du kannst den Befehl du mit anderen Befehlen kombinieren, um erweiterte Verzeichnisanzeigen zu erhalten. Eine Möglichkeit besteht darin, den Befehl du mit dem Befehl grep zu verketten, um nur Dateien oder Verzeichnisse anzuzeigen, die mit einem bestimmten Muster übereinstimmen. Beispielsweise zeigt der folgende Befehl alle Dateien und Verzeichnisse im aktuellen Verzeichnis an, die das Wort "Arbeit" im Namen enthalten:

du | grep Arbeit

Zusätzliche Hinweise

  • Der Befehl du ist ein leistungsstarkes Tool, mit dem du den Speicherplatz deines Systems effizient verwalten kannst.
  • Durch die Verwendung verschiedener Optionen kannst du den Befehl du an deine spezifischen Anforderungen anpassen.
  • Wenn du den Befehl du auf einem großen Verzeichnisbaum verwendest, kann es einige Zeit dauern, bis die Ergebnisse angezeigt werden.

Option -l: Anzeige detaillierter Informationen zu Verzeichnisinhalten

Die Option -l des Befehls ls bietet dir eine detailliertere Ansicht der Inhalte eines Verzeichnisses. Sie listet alle Dateien und Unterverzeichnisse im Verzeichnis auf und liefert zusätzliche Informationen wie Dateityp, Größe, Datum und Uhrzeit der letzten Änderung sowie Berechtigungen.

Dateiberechtigungen

Die Ausgabe von ls -l enthält eine Spalte mit Dateiberechtigungen. Diese unterteilt sich in drei Teile:

  • Benutzerberechtigungen: Dies sind die Berechtigungen, die der Eigentümer der Datei hat.
  • Gruppenberechtigungen: Dies sind die Berechtigungen, die Mitglieder der Gruppe haben, zu der die Datei gehört.
  • Andere Berechtigungen: Dies sind die Berechtigungen, die alle anderen Benutzer haben.

Jede Berechtigungsliste besteht aus drei Buchstaben:

  • r: Leseberechtigung
  • w: Schreibrechtigung
  • x: Ausführungsberechtigung

Ein Beispiel für eine Dateiberechtigung wäre -rw-r--r--, was bedeutet, dass der Eigentümer Leserechte und Schreibrechte hat, die Gruppe Leserechte hat und alle anderen nur Leserechte haben.

Dateitypen

Die Option -l zeigt auch den Dateityp an. Dies kann entweder eine normale Datei, ein Verzeichnis, ein symbolischer Link oder ein spezielles Gerät sein. Der Dateityp wird durch einen Buchstaben am Anfang der Ausgabezeile angezeigt:

  • -: Normale Datei
  • d: Verzeichnis
  • l: Symbolischer Link
  • b: Blockgerät
  • c: Zeichen устройство

Größe, Datum und Uhrzeit der letzten Änderung

ls -l zeigt auch die Größe der Datei in Bytes, das Datum der letzten Änderung und die Uhrzeit der letzten Änderung an. Diese Informationen können nützlich sein, um den Speicherplatzbedarf zu ermitteln oder zu verfolgen, wann sich Dateien zuletzt geändert haben.

Wenn du die Option -lh verwendest, wird die Größe der Datei in einem für Menschen lesbaren Format angezeigt (z. B. KB, MB, GB).

Verwendung mit anderen Optionen

Die Option -l kann mit anderen Optionen des Befehls ls kombiniert werden, um eine noch detailliertere Ansicht der Verzeichnisinhalte zu erhalten. Beispielsweise kannst du Folgendes verwenden:

  • ls -lR: Rekursive Anzeige der Verzeichnisbaumstruktur mit detaillierten Informationen
  • ls -la: Anzeige versteckter Dateien und Verzeichnisse mit detaillierten Informationen
  • ls -lht: Sortierung der Verzeichnisinhalte nach der Zeit der letzten Änderung (neueste zuerst)
  • ls -lSr: Sortierung der Verzeichnisinhalte nach Größe (größte zuerst)

Option -R: Rekursive Anzeige des Verzeichnisbaums

Mit der Option -R kannst du dich rekursiv durch ein Verzeichnis bewegen und dessen gesamte hierarchische Struktur anzeigen. Dies ist besonders nützlich, wenn du den gesamten Inhalt eines Verzeichnisses und seiner Unterverzeichnisse auf einen Blick sehen möchtest.

Verwendung

Um eine rekursive Anzeige des Verzeichnisbaums durchzuführen, verwende den Befehl tree wie folgt:

tree -R

Dies zeigt dir eine vollständige, verschachtelte Darstellung aller Verzeichnisse und Dateien unter dem aktuellen Arbeitsverzeichnis.

Optionen

Zusätzlich zur Option -R kannst du weitere Optionen verwenden, um die Ausgabe des Befehls tree anzupassen:

  • -d: Nur Verzeichnisse anzeigen
  • -f: Dateinamen anzeigen
  • -L <Ebene>: Nur die ersten <Ebene> Ebenen des Verzeichnisbaums anzeigen
  • -P: Verzeichnisnamen mit Schrägstrich (/) am Ende anzeigen

Beispiele

  • Um den vollständigen Verzeichnisbaum unter dem aktuellen Arbeitsverzeichnis rekursiv anzuzeigen, verwende:
tree -R
  • Um nur die ersten drei Ebenen des Verzeichnisbaums rekursiv anzuzeigen, verwende:
tree -R -L 3
  • Um eine rekursive Anzeige aller Verzeichnisse und Dateien durchzuführen, mit Dateinamen und Verzeichnisnamen, die mit Schrägstrich enden, verwende:
tree -R -f -P

Vorteile

Die Verwendung der Option -R bietet folgende Vorteile:

  • Umfassende Übersicht: Sie bietet dir eine vollständige Ansicht aller Verzeichnisse und Dateien in einem Verzeichnisbaum.
  • Fehlerbehebung: Sie kann bei der Fehlerbehebung in Verzeichnisstrukturen helfen, indem sie dir eine visuelle Darstellung der Hierarchie zeigt.
  • Ressourcenverwaltung: Sie ermöglicht es dir, den Speicherverbrauch von Verzeichnissen und Dateien zu ermitteln und Speicherressourcen effizient zu verwalten.

Alternativen

Es gibt auch alternative Tools, die ähnliche Funktionen wie der Befehl tree bieten, darunter:

  • TreeView: Eine grafische Benutzeroberfläche (GUI) zur Visualisierung von Verzeichnisbäumen
  • Ncdu: Ein textbasiertes Tool, das Verzeichnisbäume visuell darstellt, mit farbcodierter Darstellung des Speicherverbrauchs

Option --sort: Sortierung der Verzeichnisinhalte nach verschiedenen Kriterien

Mit der Option --sort kannst du die Ausgabe der Befehle tree, ls und find nach verschiedenen Kriterien sortieren. Dies ermöglicht dir, Verzeichnisstrukturen auf organisierte und benutzerfreundliche Weise anzuzeigen.

Sortierkriterien

Die folgenden Sortierkriterien stehen zur Verfügung:

  • Zeit: Sortiert nach Erstellungs-, Änderungs- oder Zugriffszeit.
  • Größe: Sortiert nach Dateigröße.
  • Name: Sortiert nach Dateiname.
  • Typ: Sortiert nach Dateityp (z. B. Verzeichnis, Datei, Verknüpfung).
  • Inode: Sortiert nach der Inode-Nummer (interne Identifikationsnummer).

Sortierreihenfolge

Du kannst die Sortierreihenfolge mithilfe der Flags --sort=asc und --sort=desc festlegen. asc steht für aufsteigend (vom kleinsten zum größten oder vom ältesten zum neuesten) und desc für absteigend (vom größten zum kleinsten oder vom neuesten zum ältesten).

Beispiele

  • Nach Dateiname sortieren: tree --sort=name
  • Nach Zugriffszeit absteigend sortieren: ls -l --sort=atime:desc
  • Nach Dateityp sortieren: find / -type f --sort=type
  • Nach Größe aufsteigend sortieren und versteckte Dateien anzeigen: du -a --sort=size:asc

Verwendung in Pipes

Du kannst die Option --sort mit Pipes kombinieren, um erweiterte Sortierfunktionen zu erhalten. Beispielsweise kannst du den Befehl find verwenden, um Dateien zu suchen und zu filtern, und dann die Option --sort anwenden, um die Ergebnisse nach einem bestimmten Kriterium zu sortieren.

find / -name "*.txt" -print0 | sort -z --sort=size:asc

Dieser Befehl sucht nach allen Dateien mit der Erweiterung ".txt" im Verzeichnis / und sortiert sie nach aufsteigender Größe.

Verwendung von Pipes zum Verketten von Befehlen für erweiterte Verzeichnisanzeigen

Pipes ermöglichen es dir, die Ausgabe eines Befehls als Eingabe für einen anderen Befehl zu verwenden. Dies eröffnet eine Vielzahl von Möglichkeiten für die Anpassung der Verzeichnisanzeige an deine spezifischen Anforderungen.

Verzeichnisbaum sortieren und filtern

Du kannst die Befehle tree und find mit Pipes kombinieren, um den Verzeichnisbaum zu sortieren und zu filtern. Beispielsweise sortierst du den Verzeichnisbaum nach Dateigröße und zeigst nur Verzeichnisse an:

find / -type d | sort -k1,2r | head -n 10

Rekursive Suche und Anzeige

Mit Pipes kannst du die rekursive Suche von find mit der hierarchischen Anzeige von tree kombinieren. Dies ermöglicht es dir, einen bestimmten Dateityp rekursiv zu suchen und den zugehörigen Verzeichnisbaum anzuzeigen:

find / -name "*.txt" | xargs tree

Kombinierte Verzeichnisanzeigen

Du kannst verschiedene Befehle kombinieren, um komplexe Verzeichnisanzeigen zu erstellen. Beispielsweise kannst du den Speicherverbrauch von Verzeichnissen unter einem bestimmten Pfad anzeigen und diese nach Größe sortieren:

du -sh * | sort -rnk1

Verwendung von cat für benutzerdefinierte Formatierung

Der Befehl cat kann verwendet werden, um die Ausgabe mehrerer Befehle zu verketten und benutzerdefinierte Formatierungen hinzuzufügen. Beispielsweise kannst du die detaillierte Inhaltsliste von ls mit der hierarchischen Anzeige von tree kombinieren:

cat <(ls -l) <(tree)

Weitere Pipe-Anwendungen

Die Möglichkeiten von Pipes zur Erweiterung der Verzeichnisanzeige sind nahezu unbegrenzt. Du kannst sie verwenden, um:

  • Verarbeitungsergebnisse von verschiedenen Befehlen zu kombinieren
  • Daten zwischen Befehlen zu filtern und zu sortieren
  • Benutzerdefinierte Ausgabedatenformate zu erstellen

Verzeichnisbaum visualisieren mit Tools wie treeview und ncdu

Neben der Verwendung von Befehlszeilentools kannst du auch grafische Tools nutzen, um deinen Verzeichnisbaum zu visualisieren. Dies kann die Navigation und das Verständnis der Struktur deines Dateisystems erleichtern. Zu den beliebten Tools gehören:

TreeView

TreeView ist ein leichtgewichtiges Tool, mit dem du deinen Verzeichnisbaum in einer hierarchischen Baumansicht anzeigen kannst. Es bietet eine übersichtliche Darstellung der Verzeichnisstruktur und ermöglicht es dir, schnell durch Verzeichnisse zu navigieren.

Hauptmerkmale von TreeView:

  • Hierarchische Baumansicht des Verzeichnisbaums
  • Einfache Navigation durch Auf- und Abblättern der Verzeichnisstruktur
  • Unterstützung für Drag-and-Drop-Operationen
  • Anpassbare Einstellungen für Darstellung und Farben

Ncdu

Ncdu ist ein textbasiertes Tool, das den Speicherverbrauch von Verzeichnissen und Dateien visualisiert. Es zeigt eine baumartige Struktur an, wobei die Größe der Verzeichnisse proportional zu ihrem Speicherverbrauch dargestellt wird.

Hauptmerkmale von Ncdu:

  • Visuelle Darstellung des Speicherverbrauchs des Verzeichnisbaums
  • Sortierung nach Größe, Dateityp oder anderen Kriterien
  • Unterstützung für die rekursive Anzeige versteckter Dateien und Verzeichnisse
  • Interaktive Schnittstelle zum Durchsuchen und Filtern des Verzeichnisbaums

Verwendung von TreeView und Ncdu

Um TreeView zu verwenden, installiere es aus dem Software-Repository deiner Linux-Distribution. Öffne dann ein Terminal und gib den folgenden Befehl ein:

tree [options] [verzeichnis]

Um Ncdu zu verwenden, installiere es wie oben beschrieben und führe dann den folgenden Befehl aus:

ncdu [options] [verzeichnis]

Zusätzliche Optionen für beide Tools findest du in ihren jeweiligen Dokumentationen.

Folge uns

Neue Posts

Beliebte Posts