ls — Verzeichnisinhalte auflisten

Verzeichnisinhalte mit ls anzeigen — Rechte, Eigentümer, Größe und Änderungszeit, plus Sortieren, Filtern und nützliche Optionskombinationen.

ls listet den Inhalt von Verzeichnissen auf und ist damit eines der Kommandos, das du im Terminal am häufigsten tippst. Ohne Optionen zeigt es nur die Namen, doch erst die Flags machen es richtig nützlich: -l liefert die Langform mit Rechten, Eigentümer, Größe und Änderungsdatum, -a blendet versteckte Dateien ein, -h macht Größenangaben lesbar und -t oder -S sortieren nach Zeit beziehungsweise Größe. Die hier gezeigten Optionen beziehen sich auf das GNU-ls der coreutils, wie es unter Linux Standard ist – das BSD-/macOS-ls kennt einige Flags nicht oder belegt sie anders. In der Praxis kombinierst du die Buchstaben einfach, etwa ls -lahS, und gehst über Pipes weiter zu head, wc oder grep.

Grundlagen

ls — Listet Dateien und Verzeichnisse im aktuellen Verzeichnis auf.

ls

ls <verzeichnis> — Listet den Inhalt eines bestimmten Verzeichnisses auf.

ls /var/log

ls <datei1> <datei2> — Listet bestimmte Dateien oder mehrere Pfade auf.

ls index.html style.css

ls -l — Langform. Zeigt Rechte, Eigentümer, Größe und Änderungsdatum.

ls -l

ls -la — Langform inklusive versteckter Dateien (Dotfiles).

ls -la ~/

ls -lh — Langform mit menschenlesbaren Dateigrößen (K, M, G).

ls -lh /var/log/

Versteckte Dateien anzeigen

ls -a — Zeigt alle Dateien inklusive versteckter (Dotfiles), . und ..

ls -a

ls -A — Zeigt versteckte Dateien, aber ohne die Einträge . und ..

ls -A

ls -d .* — Listet nur versteckte Dateien und Verzeichnisse auf.

ls -d .*

Sortieren

ls -t — Sortiert nach Änderungszeit, neueste zuerst.

ls -lt

ls -tr — Sortiert nach Änderungszeit, älteste zuerst (umgekehrt).

ls -ltr

ls -S — Sortiert nach Dateigröße, größte zuerst.

ls -lSh

ls -Sr — Sortiert nach Dateigröße, kleinste zuerst.

ls -lSrh

ls -X — Sortiert alphabetisch nach Dateiendung.

ls -lX

ls -v — Natürliche Sortierung von Versionsnummern in Dateinamen.

ls -v

ls -U — Nicht sortieren. Listet die Einträge in Verzeichnisreihenfolge auf.

ls -U

ls -r — Kehrt die Sortierreihenfolge um.

ls -lr

Anzeigeformate

ls -1 — Listet eine Datei pro Zeile auf.

ls -1

ls -m — Listet Dateien als kommagetrennte Werte auf.

ls -m

ls -C — Listet in Spalten auf (Standard, wenn die Ausgabe ein Terminal ist).

ls -C

ls -x — Listet Einträge zeilenweise statt in Spalten auf.

ls -x

ls -Q — Schließt Dateinamen in doppelte Anführungszeichen ein.

ls -Q

ls --color=auto — Färbt die Ausgabe ein. Verzeichnisse, Programme und Links erhalten eigene Farben.

ls --color=auto

Datei-Informationen

ls -i — Zeigt die Inode-Nummer jeder Datei.

ls -li

ls -n — Langform mit numerischer UID und GID statt Namen.

ls -ln

ls -o — Langform ohne Gruppeninformation.

ls -o

ls -g — Langform ohne Eigentümerinformation.

ls -g

ls --full-time — Langform mit vollständigem Datum und Uhrzeit inklusive Nanosekunden.

ls --full-time

ls -s — Zeigt die belegte Blockgröße jeder Datei.

ls -ls

Verzeichnisse & Rekursion

ls -d <verzeichnis> — Listet den Verzeichniseintrag selbst auf, nicht seinen Inhalt.

ls -ld /var

ls -d */ — Listet nur Verzeichnisse im aktuellen Verzeichnis auf.

ls -d */

ls -R — Listet den Inhalt rekursiv durch alle Unterverzeichnisse auf.

ls -R /etc/nginx

ls -R <verzeichnis> | grep ':$' — Listet nur die Unterverzeichnisnamen aus der rekursiven Ausgabe auf.

ls -R /var | grep ':$'

ls -l <link> — Zeigt, wohin ein symbolischer Link verweist.

ls -l /usr/bin/python3

ls -L — Zeigt Informationen über das Ziel eines Symlinks, nicht über den Link selbst.

ls -lL /usr/bin/python3

ls -F — Hängt ein Kennzeichen an die Einträge: / Verzeichnis, @ Symlink, * ausführbar.

ls -F

ls -p — Hängt das Kennzeichen / nur an Verzeichnisse an.

ls -p

Filtern mit Globs

ls *.txt — Listet alle Dateien mit der Endung .txt auf.

ls *.txt

ls *.{jpg,png,gif} — Listet Dateien mehrerer Endungen per Klammer-Expansion auf.

ls -lh *.{jpg,png,gif}

ls [A-Z]* — Listet Dateien auf, die mit einem Großbuchstaben beginnen.

ls [A-Z]*

ls -I '<muster>' — Schließt Dateien, die auf ein Muster passen, von der Auflistung aus.

ls -I '*.bak' -I '*.tmp'

ls --hide='<muster>' — Verbirgt Dateien, die auf das Muster passen (durch -a überschrieben).

ls --hide='*.pyc'

Häufige Kombinationen

ls -lahS — Alle Dateien, Langform, menschenlesbar, nach Größe sortiert.

ls -lahS

ls -latr — Alle Dateien, Langform, nach Zeit sortiert (älteste zuerst).

ls -latr

ls -lhS | head -n 10 — Zeigt die 10 größten Dateien in einem Verzeichnis.

ls -lhS | head -n 10

ls -lt | head -n 5 — Zeigt die 5 zuletzt geänderten Dateien.

ls -lt | head -n 5

ls -1 | wc -l — Zählt die Anzahl der Dateien in einem Verzeichnis.

ls -1 | wc -l

ls -1 | sort -f — Listet Dateien ohne Beachtung der Groß-/Kleinschreibung sortiert auf.

ls -1 | sort -f

ls -d .* 2>/dev/null — Listet nur Dotfiles auf und unterdrückt Fehler, falls keine existieren.

ls -ld .* 2>/dev/null

ls -lR | grep '^-' | wc -l — Zählt alle Dateien rekursiv (ohne Verzeichnisse).

ls -lR | grep '^-' | wc -l

Fazit

ls ist trügerisch einfach: Den vollen Nutzen ziehst du erst aus den Optionskombinationen. Für den Alltag genügen meist ls -lah (alles, lesbar, mit Details), ls -ltr (zeitlich sortiert, Neuestes unten) und das Anhängen einer Pipe zu head, wc -l oder grep. Denk daran, dass die gezeigten Flags GNU-coreutils voraussetzen – auf macOS oder BSD verhalten sich --full-time, -X oder --hide anders oder fehlen ganz; dort hilft oft gls aus den coreutils. ls zeigt dir Besitz und Rechte nur im Überblick – für die vollständigen Metadaten greifst du zu stat, für den echten Dateityp zu file und zum Suchen über ganze Bäume zu find.

Verwandte Kommandos

  • stat – vollständige Datei-Metadaten jenseits von ls -l
  • file – den echten Dateityp anhand des Inhalts bestimmen
  • find – Dateien rekursiv suchen und filtern