stat — Detaillierte Datei- und Dateisystem-Informationen

Mit stat alle Metadaten einer Datei anzeigen — Größe, Rechte, Eigentümer, Zeitstempel und Inode, dazu Format-Strings und Dateisystem-Status.

stat zeigt dir alle Metadaten einer Datei auf einen Blick – deutlich mehr als ls -l: exakte Größe in Bytes, Rechte sowohl symbolisch als auch oktal, Eigentümer und Gruppe, Inode-Nummer und die drei Zeitstempel für Zugriff (atime), Änderung (mtime) und Statuswechsel (ctime). Mit der Option -c und Format-Strings wie %s, %a oder %U baust du dir die Ausgabe genau so, wie du sie für Skripte brauchst. Wichtig: Die hier gezeigte Syntax gilt für das GNU-stat der coreutils unter Linux. Auf macOS und BSD heißt der Format-Schalter -f (statt -c) und verwendet völlig andere Platzhalter – dort ist -f außerdem nicht der Dateisystem-Status. Unter Linux blendest du mit -f den Dateisystem-Status statt der Datei-Infos ein.

Grundlagen

stat <datei> — Zeigt alle verfügbaren Informationen über eine Datei.

stat index.html

stat -f <dateisystem> — Zeigt den Dateisystem-Status statt des Datei-Status.

stat -f /

stat -L <symlink> — Folgt Symlinks und zeigt Infos über die Zieldatei.

stat -L /usr/bin/python3

stat <datei1> <datei2> — Zeigt Informationen für mehrere Dateien.

stat *.conf

Format-Strings — Datei-Infos

stat -c '%s' <datei> — Zeigt die Dateigröße in Bytes.

stat -c '%s' backup.tar.gz

stat -c '%n %s' <datei> — Zeigt Dateinamen und Größe.

stat -c '%n %s' *.log

stat -c '%A' <datei> — Zeigt menschenlesbare Rechte (z. B. -rwxr-xr-x).

stat -c '%A' script.sh

stat -c '%a' <datei> — Zeigt die Rechte als Oktalzahl (z. B. 755).

stat -c '%a' /etc/passwd

stat -c '%U:%G' <datei> — Zeigt Eigentümer- und Gruppennamen.

stat -c '%U:%G' /var/log/syslog

stat -c '%F' <datei> — Zeigt den Dateityp (reguläre Datei, Verzeichnis, Symlink usw.).

stat -c '%F' /dev/null

stat -c '%i' <datei> — Zeigt die Inode-Nummer.

stat -c '%i' myfile.txt

Format-Strings — Zeitstempel

stat -c '%y' <datei> — Zeigt die letzte Änderungszeit (menschenlesbar).

stat -c '%y' config.yaml

stat -c '%x' <datei> — Zeigt die letzte Zugriffszeit.

stat -c '%x' data.csv

stat -c '%z' <datei> — Zeigt die letzte Statusänderungszeit (ctime).

stat -c '%z' /etc/hosts

stat -c '%w' <datei> — Zeigt die Erstellungszeit (Birth-Time), falls verfügbar.

stat -c '%w' readme.md

stat -c '%Y' <datei> — Zeigt die Änderungszeit als Unix-Zeitstempel (Sekunden seit Epoch).

stat -c '%Y' deploy.log

Dateisystem-Infos

stat -f -c '%T' <pfad> — Zeigt den Dateisystem-Typ.

stat -f -c '%T' /

stat -f -c '%b %S' <pfad> — Zeigt die Gesamtzahl der Blöcke und die Blockgröße.

stat -f -c '%b %S' /home

stat -f -c '%a' <pfad> — Zeigt die für nicht-privilegierte Benutzer verfügbaren Blöcke.

stat -f -c '%a' /tmp

Häufige Muster

stat -c '%a %n' * — Listet die Rechte aller Dateien im aktuellen Verzeichnis auf.

stat -c '%a %n' /etc/*.conf

stat -c '%s %n' * | sort -n — Listet Dateien nach Größe sortiert auf.

stat -c '%s %n' *.log | sort -n

stat -c '%Y %n' * | sort -n | tail -5 — Zeigt die 5 zuletzt geänderten Dateien.

stat -c '%Y %n' /var/log/* | sort -n | tail -5

stat -c '%U %n' * | grep -v root — Findet Dateien, die nicht root gehören.

stat -c '%U %n' /usr/local/bin/* | grep -v root

Fazit

stat ist dein Werkzeug, wenn ls -l nicht genug verrät: exakte Bytes, alle drei Zeitstempel und die Inode auf einen Blick. Seine wahre Stärke spielt es mit -c und Format-Strings aus – damit erzeugst du genau die Felder, die ein Skript weiterverarbeiten kann, etwa stat -c '%s %n' für eine nach Größe sortierbare Liste. Achte beim Portieren von Skripten auf die Plattform: GNU-stat nutzt -c mit den hier gezeigten Platzhaltern, macOS/BSD dagegen -f mit einer komplett anderen Format-Syntax – Skripte, die auf beiden laufen sollen, müssen das berücksichtigen (oder unter macOS gstat aus den coreutils verwenden). Für den schnellen Überblick bleibt ls, für den Inhalts-basierten Dateityp file und zum Ändern der Rechte chmod.

Verwandte Kommandos

  • ls – Verzeichnisinhalte mit Rechten und Größe im Überblick
  • file – den Dateityp anhand des Inhalts bestimmen
  • chmod – Zugriffsrechte von Dateien ändern