Sparen Sie 15% bei allen Hosting-Diensten

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code: Skills Anfangen
Abschnitte
Linux

Wie man Verzeichnisse in Linux auflistet: Ein vollständiger Leitfaden für Anfänger und Systemadministratoren

Die Arbeit in Linux ähnelt oft dem Navigieren in einer riesigen Bibliothek. Anstelle von Regalen haben Sie Verzeichnisse (Ordner), und anstelle von Büchern haben Sie Dateien. Egal ob Sie ein erfahrener Systemadministrator, ein Entwickler oder ein neugieriger Anfänger sind, der gerade anfängt – die Beherrschung der Grundlagen der Dateisystemnavigation ist unverzichtbar. Eine der wichtigsten grundlegenden Fähigkeiten ist zu wissen, wie man Verzeichnisse effizient und genau auflistet.

Dieser Leitfaden führt Sie durch jede praktische Methode zum Auflisten von Verzeichnissen in Linux, erklärt die Stärken und Grenzen jedes Ansatzes und zeigt Ihnen genau, wann Sie welches Tool verwenden sollten – einschließlich in Scripting- und Produktionsserver-Umgebungen.

Warum das Auflisten von Verzeichnissen wichtig ist

Auf einem persönlichen Computer könnten Sie gelegentlich Ihren Ordner "Dokumente" oder "Downloads" über eine grafische Benutzeroberfläche durchsuchen. Auf einem Linux-Server sind Verzeichnisse jedoch das Herzstück fast jeder administrativen Aufgabe, die Sie ausführen werden:

  • Systemadministration: Schnell überprüfen, was sich in /etc/, /var/log/ oder /usr/local/bin/ befindet.
  • Web-Hosting: Projektordner unter /var/www/ oder /home/ lokalisieren und verwalten.
  • Softwareentwicklung: Versionskontroll- und Umgebungsverzeichnisse wie .git/ oder .venv/ identifizieren.
  • Sicherheitsaudit: Genau bestätigen, was auf dem System installiert, konfiguriert und ausgeführt wird.
  • Automatisierung und Scripting: Zuverlässig Verzeichnisse für die Verwendung in Shell-Skripten und Cron-Jobs aufzählen.

Wenn Sie Verzeichnisse nicht effizient auflisten können, werden Sie sich immer desorientiert fühlen — besonders in einer Remote-VPS Hosting-Umgebung, in der Sie nicht auf einen grafischen Dateimanager zurückgreifen können.

Methode 1: Der ls Befehl — Schnell und einfach

Der ls Befehl ist das Standard-Tool zum Anzeigen des Inhalts eines Verzeichnisses. Es ist der erste Befehl, den die meisten Linux-Benutzer lernen, und das aus gutem Grund: Er ist schnell, benutzerfreundlich und auf jedem Unix-ähnlichen System verfügbar.

Grundlegende Verwendung

ls

Dies listet alle nicht versteckten Dateien und Verzeichnisse im aktuellen Arbeitsverzeichnis auf.

Nur Verzeichnisse auflisten

ls -d */

Hier ist, was jeder Teil macht:

  • -d — Teilt ls mit, nicht in Unterverzeichnisse abzusteigen, sondern die Verzeichniseinträge selbst aufzulisten.
  • */ — Ein Shell-Glob-Muster, das alle Verzeichnisse (und symbolische Links zu Verzeichnissen) im aktuellen Ordner abgleicht.

Verzeichnisse mit detaillierten Informationen auflisten

ls -ld */

Das Hinzufügen von -l gibt Ihnen ein langes Listenformat, das Folgendes enthält:

  • Dateiberechtigungen
  • Anzahl der Hard Links
  • Besitzer und Gruppe
  • Dateigröße
  • Zeitstempel der letzten Änderung

Beispielausgabe:

drwxr-xr-x 3 root root 4096 Jun 10 14:22 backups/
drwxr-xr-x 5 www-data www-data 4096 Jun 12 09:15 html/
drwxr-xr-x 2 deploy deploy 4096 Jun 11 18:03 logs/

Einschränkung: Versteckte Verzeichnisse sind ausgeschlossen

Das */ Glob stimmt nicht mit versteckten Verzeichnissen überein — solchen, deren Namen mit einem Punkt beginnen (.), wie .git/, .ssh/ oder .config/. Dies ist ein wichtiger Vorbehalt, besonders in sicherheitsempfindlichen Umgebungen.

Wann ls -d */ verwendet werden sollte: Schnelle, interaktive Überprüfungen, bei denen Sie nur sichtbare Verzeichnisse benötigen und keine Scripting-Zuverlässigkeit erforderlich ist.

Methode 2: Der find Befehl — Leistungsstark und zuverlässig

Der find Befehl ist die Wahl des Profis zum Aufzählen von Verzeichnissen. Im Gegensatz zu ls ist er für programmatische Verwendung konzipiert, unterstützt rekursives Durchlaufen, enthält standardmäßig versteckte Verzeichnisse und verhält sich konsistent über verschiedene Linux-Distributionen und Locales hinweg.

Alle Verzeichnisse rekursiv auflisten

find . -type d
  • . — Beginnt im aktuellen Verzeichnis.
  • -type d — Passt nur auf Verzeichniseinträge (nicht auf Dateien, Symlinks oder andere Typen).

Dies listet rekursiv jedes Verzeichnis auf jeder Tiefenebene unter Ihrem aktuellen Standort auf.

Nur Verzeichnisse der obersten Ebene auflisten (portable Methode)

find . -mindepth 1 -maxdepth 1 -type d
  • -mindepth 1 — Schließt das aktuelle Verzeichnis selbst (.) aus den Ergebnissen aus.
  • -maxdepth 1 — Verhindert Rekursion über die unmittelbaren Kinder hinaus.

Dies ist die portabelste und zuverlässigste Methode, um nur die direkten Unterverzeichnisse des aktuellen Ordners aufzulisten, und sie funktioniert identisch auf GNU/Linux, macOS und BSD-Systemen.

Alternative für GNU/Linux-Systeme

Auf den meisten modernen Linux-Distributionen — einschließlich derer, die auf Dedicated Servers laufen — können Sie auch verwenden:

find . -maxdepth 1 -type d

Beachten Sie, dass dies . selbst in die Ausgabe einbezieht. Verwenden Sie -mindepth 1 zusammen mit -maxdepth 1, um es sauber auszuschließen.

Versteckte Verzeichnisse einbeziehen

Da find nicht auf Shell-Globs angewiesen ist, bezieht es automatisch versteckte Verzeichnisse ein:

find . -mindepth 1 -maxdepth 1 -type d

Dies zeigt .git/, .ssh/, .config/ und alle anderen mit Punkt beginnenden Verzeichnisse neben sichtbaren an.

find in Skripten verwenden

find ist das richtige Werkzeug für Shell-Scripting, weil:

  • Es Dateinamen mit Leerzeichen und Sonderzeichen sicher verarbeitet.
  • Es nicht von Locale-Einstellungen oder Terminal-Farbkonfigurationen beeinflusst wird.
  • Es konsistente, analysierbare Ausgabe erzeugt.

Beispiel: Über alle Verzeichnisse der obersten Ebene iterieren

find . -mindepth 1 -maxdepth 1 -type d | while read -r dir; do
    echo "Processing: $dir"
done

Wann find verwendet werden sollte: Jedes Mal, wenn Sie versteckte Verzeichnisse einbeziehen müssen, rekursive Ergebnisse benötigen oder zuverlässige Ausgabe für Scripting und Automatisierung benötigen.

Methode 3: Der tree Befehl — Visuelle Verzeichniskarten

Der tree Befehl rendert eine visuelle, hierarchische Karte Ihrer Verzeichnisstruktur. Er ist nicht standardmäßig auf allen Distributionen installiert, aber äußerst nützlich für Dokumentation, Onboarding und das Verständnis komplexer Projektlayouts.

tree installieren

Debian/Ubuntu:

sudo apt install tree

CentOS/RHEL/AlmaLinux:

sudo yum install tree

Nur Verzeichnisse auflisten (keine Dateien)

tree -d

Tiefe begrenzen, um überwältigende Ausgabe zu vermeiden

tree -d -L 2
  • -d — Nur Verzeichnisse anzeigen.
  • -L 2 — Die Anzeige auf 2 Ebenen Tiefe begrenzen.

Beispielausgabe:

.
├── backups
│   └── daily
├── html
│   ├── assets
│   └── uploads
└── logs

Versteckte Verzeichnisse einbeziehen

tree -d -a

Wann tree verwendet werden sollte: Visualisierung von Projektstrukturen, Schreiben von Dokumentation oder Erkundung eines unbekannten Server-Layouts zum ersten Mal.

Method 4: Warum Sie ls -l | grep "^d" vermeiden sollten

Sie werden gelegentlich dieses Muster online vorgeschlagen sehen:

ls -l | grep "^d"

Die Idee ist, die Langformat-Ausgabe von ls zu filtern, um nur Zeilen anzuzeigen, die mit d beginnen — was ein Verzeichnis anzeigt. Während dies clever erscheint, ist es grundlegend fragil und sollte in jedem ernsthaften Kontext vermieden werden:

ProblemErklärung
Locale-EmpfindlichkeitEinige Locales oder Terminal-Konfigurationen ändern das Ausgabeformat von ls -l, was das grep-Muster bricht.
FarbcodesWenn ls ANSI-Farbescapezeichen ausgibt, kann das ^d-Muster nicht übereinstimmen.
Versteckte VerzeichnisseNicht angezeigt, genau wie bei ls -d */.
Symbolische LinksSymlinks, die auf Verzeichnisse zeigen, werden als l angezeigt, nicht als d, daher werden sie stillschweigend ausgeschlossen.
Scripting-UnzuverlässigkeitDas Parsen von ls-Ausgaben in Skripten wird in Best Practices für Shell-Scripting explizit abgeraten.

Verwenden Sie stattdessen find. Es ist speziell für diese Aufgabe konzipiert und vermeidet alle oben genannten Probleme.

Schnellreferenz: Wahl der richtigen Methode

ZielBestes Kommando
Schnelle interaktive Überprüfung (nur sichtbare Verzeichnisse)ls -d */
Detaillierte Auflistung mit Berechtigungenls -ld */
Verzeichnisse der obersten Ebene einschließlich versteckterfind . -mindepth 1 -maxdepth 1 -type d
Alle Verzeichnisse rekursivfind . -type d
Visuelle Baumstrukturtree -d
Verwendung in einem Shell-Skriptfind . -mindepth 1 -maxdepth 1 -type d

Best Practices für Production Server-Umgebungen

Bei der Arbeit auf einem Live-Server — ob es sich um ein Shared Web Hosting-Konto oder einen vollständig verwalteten VPS handelt — beachten Sie diese Prinzipien:

  1. Überprüfen Sie immer versteckte Verzeichnisse während Sicherheitsprüfungen. Verzeichnisse wie .ssh/, .git/, .env/ und .config/ enthalten oft sensible Anmeldedaten, Schlüssel und Konfigurationsdateien. Verwenden Sie find mit -mindepth 1, um sicherzustellen, dass sie in Ihrer Ausgabe angezeigt werden.
  1. Verwenden Sie find in allen Skripten, niemals ls. Das Parsen von ls-Ausgabe ist ein bekanntes Anti-Pattern in Shell-Scripting. Der find-Befehl ist deterministisch, unabhängig von der Gebietsschema-Einstellung und behandelt Grenzfälle elegant.
  1. Kombinieren Sie find mit -exec für Massenoperationen. Zum Beispiel, um Verzeichnisgrößen aufzulisten:
   find . -mindepth 1 -maxdepth 1 -type d -exec du -sh {} ;
  1. Verwenden Sie tree -d -L 2 beim Onboarding. Wenn Sie sich zum ersten Mal per SSH auf einem unbekannten Server anmelden, gibt Ihnen ein schneller tree -d -L 2 von /var/www/ oder /home/ einen sofortigen strukturellen Überblick.
  1. Beschränken Sie Berechtigungen sorgfältig. Zu wissen, welche Verzeichnisse vorhanden sind, ist nur ein Teil des Bildes. Überprüfen Sie regelmäßig Verzeichnisberechtigungen mit ls -ld */, um falsch konfigurierte, weltweit beschreibbare Verzeichnisse zu erkennen.

Praktisches Beispiel: Audit eines Web-Server-Verzeichnisses

Angenommen, Sie haben gerade eine neue Anwendung auf einem Linux VPS bereitgestellt. Hier ist ein praktischer Workflow, der die in diesem Leitfaden behandelten Befehle kombiniert:

# Navigate to the web root
cd /var/www/

# Quick visual check of top-level directories
ls -ld */

# Full audit including hidden directories
find . -mindepth 1 -maxdepth 1 -type d

# Visual map of the project structure (2 levels deep)
tree -d -L 2

# Check disk usage per directory
find . -mindepth 1 -maxdepth 1 -type d -exec du -sh {} ;

Dieser Workflow dauert weniger als eine Minute und gibt Ihnen einen vollständigen Überblick über das Verzeichnislayout, die Berechtigungen und den Speicherverbrauch Ihres Web-Servers – wesentliches Wissen für jeden Administrator, der einen VPS mit cPanel oder einen benutzerdefinierten Linux-Stack verwaltet.

Fazit

Das Auflisten von Verzeichnissen ist eine der grundlegendsten Linux-Fähigkeiten, doch die Methode, die Sie wählen, ist wichtiger als die meisten Anfänger realisieren. Hier ist eine Zusammenfassung der wichtigsten Erkenntnisse:

  • ls -d */ ist perfekt für schnelle, interaktive Überprüfungen — ignoriert aber versteckte Verzeichnisse und eignet sich nicht für Scripting.
  • find . -mindepth 1 -maxdepth 1 -type d ist der Gold-Standard für zuverlässiges, portables, script-sicheres Verzeichnisauflisten, das versteckte Einträge einschließt.
  • tree -d ist unschätzbar für die Visualisierung komplexer Strukturen und deren Kommunikation an andere.
  • Vermeiden Sie ls -l | grep "^d" — es ist fragil, gebietsabhängig und hat keine Vorteile gegenüber find.

Ob Sie Konfigurationen in einer Dedicated Servers-Umgebung verwalten, Webanwendungen bereitstellen oder einfach zum ersten Mal eine neue Linux-Maschine erkunden — die Beherrschung dieser Befehle spart Ihnen Zeit, verhindert teure Fehler und gibt Ihnen das Vertrauen, jedes Dateisystem mit Präzision zu navigieren.

Die Befehlszeile ist keine Barriere — sie ist eine Superkraft. Und sie beginnt damit, genau zu wissen, wo Sie sind und was Sie umgibt.