stat-Befehl unter Linux

Datei-Informationen abfragen

Vielleicht kennst du schon Befehle, wie ls, touch oder cat für deine Arbeit mit Dateien in der Linux-Shell.

Aber was verwendest du, um Metadaten einer Datei zu sehen? Hierfür ist stat goldrichtig. Damit kannst du gezielt Details zu Elementen im Dateisystem abfragen, ohne das Objekt zu öffnen oder zu verändern.

Dieser Artikel zeigt dir den Befehl stat genauer und wird dir helfen, bessere Skripte zu schreiben und dein Verständnis für das Dateisystem zu vertiefen.

Grundlegende Syntax

Der Befehl stat lässt sich in der einfachsten Form so aufrufen:

1
stat DATEINAME 

Einfache Verwendung

In meinem Projekt kann ich das zum Beispiel direkt einsetzen:

1
stat README.md

Wichtige Optionen von stat

Das sind ein paar wichtige Parameter:

Option Bedeutung
-f / --filesystem zeigt Informationen zum Dateisystem
-L / --dereference folgt symbolischen Links
-c / --format=FORMAT Ausgabe-Format angeben
--printf=FORMAT formatierte Anzeige
-t / --terse maschinenlesbare Ausgabe

Gerade in Skripten sind --format und --printf wirklich hilfreich, da sie dir eine präzise Steuerung ermöglichen.

Praktische Beispiele

Ich zeige dir die meisten Beispiele mit meiner README.md, aber du kannst natürlich Daten zu jedem beliebigen Element abfragen!

Metadaten anzeigen

Der einfache Aufruf stat README.md produziert ungefähr diese Ausgabe:

1
2
3
4
5
6
7
8
9
  File: README.md
  Size: 3251            Blocks: 8          IO Block: 4096   regular file
Device: 0,41    Inode: 106645      Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/     sal)   Gid: ( 1000/     sal)
Context: unconfined_u:object_r:user_home_t:s0
Access: 2025-07-08 17:23:17.413792618 +0200
Modify: 2025-06-11 14:51:31.363335635 +0200
Change: 2025-06-25 20:25:15.809567300 +0200
 Birth: 2025-06-25 20:07:04.403016958 +0200

Du siehst hier unter anderem folgende Daten:

  • die Größe in Bytes,
  • verschiedene Timestamps,
  • Eigentümer, Gruppe, Berechtigungen
  • und den Dateityp

Diese Daten verwaltet das Dateisystem in einem sogenannten INode, den man in der Ausgabe auch sieht.

Vielleicht bist du ja beim Befehl ln ja schon über INodes gestolpert. Wenn nicht, dann lies mehr dazu unter Hardlinks nach.

Dateisystem anzeigen

Mit -f erhältst du Daten zum Dateisystem, auf dem das betreffende Element liegt:

1
stat -f README.md

Mit diesem Ergebnis bei mir:

1
2
3
4
5
  File: "README.md"
    ID: 87c9ab52c43eb7e9 Namelen: 255     Type: btrfs
Block size: 4096       Fundamental block size: 4096
Blocks: Total: 487958528  Free: 443092109  Available: 442458829
Inodes: Total: 0          Free: 0

Falls das abgefragte Element ein Link ist, so zeigt stat die Daten dafür an. Mit -L kannst du aber dem Link folgen und die Details zum Ziel anzeigen:

1
stat -L /etc/resolv.conf

Format angeben

Gerade beim Einsatz in Shell-Skripten ist es oft sinnvoll, die Ausgabe von stat zu filtern oder anders zu strukturieren.

Dateigröße anzeigen:

1
stat -c "%s" README.md

letzten Änderungszeitpunkt anzeigen:

1
stat -c "%y" README.md

Name und Typ anzeigen:

1
stat --format "%n, %F" README.md

Inode anzeigen:

1
stat -c "%i" README.md

Berechtigungen sehen:

1
2
stat -c "%A" README.md
stat -c "%a" README.md

Escape-Sequenzen mit --printf

formatierte Ausgabe:

1
2
stat --printf="Name: %n\nGröße: %s Bytes\nLetzte Änderung: %y\n" README.md
stat --printf="Name: %n\nPerms: %a\n" /etc
  • hier steht \n für Zeilenumbrüche

Terse-Format (maschinenlesbar)

Bei Verwendung von -t werden alle Daten in einer Zeile ausgeben:

1
stat -t /var/log/lastlog

Format-Platzhalter

In einigen Beispielen haben wir Platzhalter verwendet, die mit % beginnen. Hier eine knappe Auswahl:

Platzhalter Bedeutung
%n Dateiname
%s Dateigröße in Bytes
%F Dateityp
%a, %A Rechte (oktal/menschlesbar)
%U, %G User, Gruppe
%x, %y, %z Zeitpunkt für Zugriff, Änderung, Statusänderung
%i Inode-Nummer

Sie lassen sich immer mit --format und --printf verwenden. Du kannst sie auch mit weiterem Text kombinieren, wie wir oben gesehen haben.

So kannst du zum Beispiel einen Schlüssel (key) und einen Wert (value) ausgeben:

1
stat --printf="Name: %n\nPerms: %a\n" /etc

Fazit

Es lohnt sich stat zu kennen: So kannst du ohne Umwege viele Details zu Elementen im Linux-Dateisystem abfragen.

Im einfachsten Fall rufst du einfach stat auf einem Element auf.

Bei speziellen Anforderungen kannst du die Ausgabe eingrenzen und formatieren!

Verwandte Befehle

Willst du tiefer einsteigen, dann sieh dir auch verwandte Befehle zu stat an:

Hilfe zu stat

Mehr zu stat findest du unter man stat und tldr stat.

Details zum Befehl tldr gibt es hier.

Erstellt mit Hugo
Theme Stack gestaltet von Jimmy