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

FeldBedeutung
GrößeDateigröße in Bytes
BlöckeAnzahl der belegten 512-Byte-Blöcke
IO BlockBlockgröße für effiziente I/O-Operationen
GerätGerätenummer (hexadezimal/dezimal)
InodeEindeutige Kennung der Datei im Dateisystem
LinksAnzahl der Hardlinks
ZugriffBerechtigungen (oktal und symbolisch)
Uid/GidBenutzer- 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.

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

PlatzhalterBedeutung
%nDateiname
%sGröße in Bytes
%FDateityp
%aBerechtigungen (oktal)
%ABerechtigungen (symbolisch)
%UBesitzer (Name)
%GGruppe (Name)
%iInode-Nummer
%hAnzahl Hardlinks
%xLetzter Zugriff
%yLetzte Änderung
%zLetzte 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.

Verwandte Artikel