Der Befehl stat zeigt detaillierte Metadaten zu Dateien und Dateisystemen an. Während ls -l nur die wichtigsten Informationen liefert, gibt stat alles preis: Zeitstempel, Inode-Nummern, Blockgrößen und Zugriffsrechte.
Syntax
stat [OPTIONEN] DATEI...
Du kannst eine oder mehrere Dateien angeben. Ohne Optionen zeigt stat alle verfügbaren Informationen zur Datei an.
Datei-Informationen anzeigen
Ein einfacher Aufruf auf eine Datei:
stat datei.txt
Die Ausgabe:
Datei: datei.txt
Größe: 4030 Blöcke: 8 IO Block: 4096 reguläre Datei
Gerät: 801h/2049d Inode: 13633379 Links: 1
Zugriff: (0644/-rw-r--r--) Uid: ( 1000/ dom) Gid: ( 1000/ dom)
Zugriff: 2024-11-06 09:52:17.991979701 +0100
Ändern: 2024-11-06 09:52:17.971979713 +0100
Modifiziert: 2024-11-06 09:52:17.971979713 +0100
Geburt: -
Die einzelnen Felder
| Feld | Bedeutung |
|---|---|
| Größe | Dateigröße in Bytes |
| Blöcke | Anzahl der belegten 512-Byte-Blöcke |
| IO Block | Blockgröße für effiziente I/O-Operationen |
| Gerät | Gerätenummer (hexadezimal/dezimal) |
| Inode | Eindeutige Kennung der Datei im Dateisystem |
| Links | Anzahl der Hardlinks |
| Zugriff | Berechtigungen (oktal und symbolisch) |
| Uid/Gid | Benutzer- und Gruppen-ID mit Namen |
Die drei Zeitstempel
Das System speichert drei verschiedene Zeitstempel pro Datei:
- Access (atime) - Letzter Lesezugriff auf den Inhalt
- Modify (mtime) - Letzte Änderung des Dateiinhalts
- Change (ctime) - Letzte Änderung der Metadaten (Berechtigungen, Besitzer, etc.)
Der Geburt-Zeitstempel (Erstellungszeit) wird von vielen Dateisystemen nicht unterstützt.
Dateisystem-Informationen anzeigen
Mit der Option -f zeigt stat statt der Datei-Metadaten Informationen über das Dateisystem an:
stat -f /home
Die Ausgabe:
Datei: "/home"
ID: 8eb53097b4494d20 Namelen: 255 Typ: ext2/ext3
Blockgröße: 4096 Fundamentale Blockgröße: 4096
Blöcke: Gesamt: 61271111 Frei: 25395668 Verfügbar: 22265851
Inodes: Gesamt: 15630336 Frei: 13979610
Das zeigt dir auf einen Blick, wie viel Speicherplatz und wie viele Inodes noch frei sind.
Symlinks verfolgen
Standardmäßig zeigt stat bei symbolischen Links Informationen über den Link selbst:
stat /etc/resolv.conf
Mit der Option -L folgst du dem Symlink und siehst die Metadaten der Zieldatei:
stat -L /etc/resolv.conf
Ausgabe formatieren
Die Option --format gibt nur bestimmte Informationen aus. Das ist praktisch für Skripte.
Nur den Dateityp anzeigen:
stat --format="%F" /dev/null
Ausgabe: Zeichenorientiertes Gerät
Mehrere Werte kombinieren:
stat --format="Name: %n, Größe: %s Bytes" datei.txt
Ausgabe: Name: datei.txt, Größe: 4030 Bytes
Wichtige Format-Platzhalter
| Platzhalter | Bedeutung |
|---|---|
%n | Dateiname |
%s | Größe in Bytes |
%F | Dateityp |
%a | Berechtigungen (oktal) |
%A | Berechtigungen (symbolisch) |
%U | Besitzer (Name) |
%G | Gruppe (Name) |
%i | Inode-Nummer |
%h | Anzahl Hardlinks |
%x | Letzter Zugriff |
%y | Letzte Änderung |
%z | Letzte Statusänderung |
Mit --printf kannst du zusätzlich Escape-Sequenzen wie \n (Zeilenumbruch) und \t (Tab) verwenden:
stat --printf="Datei: %n\nBerechtigungen: %a\n" /etc/passwd
Kompakte Ausgabe
Die Option -t erzeugt eine einzeilige Ausgabe, die sich gut für die Weiterverarbeitung eignet:
stat -t datei.txt
Alle Werte erscheinen durch Leerzeichen getrennt in einer Zeile.
Praktische Beispiele
Nur die Berechtigungen einer Datei prüfen:
stat --format="%a %n" /etc/shadow
Alle Dateien im aktuellen Verzeichnis mit Inode-Nummer auflisten:
stat --format="%i %n" *
Änderungszeitpunkt im Unix-Timestamp-Format:
stat --format="%Y" datei.txt
Zusammenfassung
stat liefert vollständige Metadaten zu Dateien und Dateisystemen. Mit den Formatierungsoptionen extrahierst du gezielt einzelne Werte für Skripte. Für einen schnellen Überblick über Zeitstempel und Berechtigungen ist stat das richtige Werkzeug.