Der Befehl stat

In diesem Beitrag lernen Sie den Befehl stat kennen, welcher unter Linux- / UNIX-Betriebssystemen verwendet wird, um verschiedene Metadaten von Dateien und Ordnern - etwa zu Zeitstempeln, Berechtigungen, Besitzer, Gruppe und dem Dateityp - auszugeben. Die Aufgabe von stat kann dabei mithilfe von Formatangaben zudem fast beliebig angepasst werden.
Da stat Teil des Pakets coreutils ist, ist es auf den meisten Systemen bereits vorinstalliert.
Allgemeine Syntax
Die allgemeine Syntax des Befehls stat lautet folgendermaßen:
stat [Optionen] [Datei / Verzeichnis]
Der Befehl kann ohne Angabe von Optionen auf einer Datei oder einem Verzeichnis ausgeführt werden. Bei diesem Anwendungsfall umfasst die Ausgabe von stat eine Vielzahl an Informationen zur gegebenen Datei bzw. dem gewählten Verzeichnis: Name, Größe, Blöcke, EA Block, Typ, Gerät, Inode, Verknüpfungen, Berechtigungen sowie Zugriffs- / Modifizierungs- / Änderungs- und Erstellungszeitstempel.
Beispiel: stat ohne Optionen (Datei)
In diesem Beispiel wird die Anwendung von stat ohne jegliche Optionen gezeigt. Es soll eine umfangreiche Ausgabe von Informationen zu einer Datei "linux-befehle.pdf" erfolgen, welche sich im aktuellen Arbeitsverzeichnis befindet.
Eingabe:
stat linux-befehle.pdf
Ausgabe:

Beispiel: stat ohne Optionen (Verzeichnis)
Ähnlich wie im ersten Beispiel soll stat hier wieder ohne Optionen ausgeführt werden. In diesem Fall sollen nun jedoch Informationen zu einem Verzeichnis "grundlagen/" im aktuellen Arbeitsverzeichnis ausgegeben werden.
Eingabe:
stat grundlagen/
Ausgabe:

Wichtige Optionen
Die wichtigsten Optionen des Befehls stat werden in diesem Abschnitt beschrieben und ihre Anwendung mit Beispielen verdeutlicht.
-L - Verknüpfungen folgen
Standardmäßig gibt stat bei Verwendung mit Verknüpfungen Informationen zu diesen, nicht jedoch zu den Dateien, auf welche sie zeigen, aus. Mithilfe der Option -L (Link) kann stat Verknüpfung folgen, sodass Informationen zur jeweiligen Zieldatei der Verknüpfung angezeigt werden.
stat -L [Datei / Verzeichnis]
Beispiel: Option -L
Hier soll die Funktionsweise der Option -L vorgestellt werden: Zunächst wird der Befehl stat dazu ohne Optionen auf einer symbolischen Verknüpfung angewendet, welche sich im aktuellen Arbeitsverzeichnis befindet. Anschließend wird stat erneut auf derselben symbolischen Verknüpfung ausgeführt, jedoch unter der Option -L.
Eingabe:
Zunächst wird stat ohne Optionen auf der symbolischen Verknüpfung "hellberg" angewendet.
stat hellberg
Ausgabe:
Die Ausgabe umfasst nun Informationen zur gegebenen symbolischen Verknüpfung selbst. Die Verknüpfung "hellberg" zeigt in diesem Fall auf das Verzeichnis /home/hellberg/.

Eingabe:
stat wird diesmal die Option -L zum Folgen von Verknüpfungen übergeben.
stat -L hellberg
Ausgabe:
In der Ausgabe werden Informationen zum Verzeichnis /home/hellberg angezeigt, welches das Ziel der Verknüpfung "hellberg" darstellt.

-f - Dateisystemstatus anzeigen
Wird die Option -f (file-system) angegeben, so gibt stat anstelle des standardmäßigen Dateistatus den Dateisystemstatus aus.
stat -f [Datei / Verzeichnis]
-c - Format spezifizieren
Möchten Sie anstelle der standardmäßigen Ausgabe von stat ein eigenes Format verwenden, so können Sie dies mithilfe der Option -c tun. Das zu verwendende Format wird der Option dann, bestenfalls in Anführungszeichen eingefasst, als Parameter übergeben. Die verfügbaren Formatangaben finden Sie im entsprechenden Abschnitt dieses Beitrags.
stat -c [Format] [Datei / Verzeichnis]
Ein Zeilenumbruch wird von stat automatisch am Ende der Ausgabe eingefügt.
Beispiel:
Option -c
Die Ausgabe des Befehls stat soll in diesem Beispiel mithilfe der Option -c und einer Formatangabe festgelegt werden.
Eingabe:
stat -c "Das Element %n ist vom Typ %F." linux-befehle.pdf
Ausgabe:
Es werden nun Dateiname ("%n") und Dateityp ("%F") im gegebenen Format ausgegeben.
Das Element linux-befehle.pdf ist vom Typ reguläre Datei.
--printf - Format ("\" interpretieren)
Die Option --printf wird, ähnlich wie auch die Option -c zur Angabe eines eigenen Formats für die Ausgabe von stat verwendet. Maskierungen mit dem Rückschrägstrich "\", wie etwa "\n" für einen Zeilenumbruch, werden hierbei jedoch interpretiert. Im Vergleich zur Option -c wird ein Zeilenumbruch am Ende der Ausgabe nicht automatisch eingefügt - dies muss mit "\n" erfolgen.
stat --printf [Format] [Datei / Verzeichnis]
Beispiel: Option --printf
Auch hier soll die Ausgabe von stat auf ein eigenes Format festgelegt werden. In diesem Beispiel wird dabei jedoch die Option --printf verwendet - mithilfe von Maskierungen können nun etwa auch Zeilenumbrüche an beliebiger Stelle eingesetzt werden.
Eingabe:
stat --printf "Dateiname: %n\nDateityp: %F\nGroesse: %s\n" linux-befehle.pdf
Ausgabe:
Dateiname, Dateityp und Dateigröße (in Bytes) werden nun im vorgegebenen Format ausgegeben.
Dateiname: linux-befehle.pdf
Dateityp: reguläre Datei
Groesse: 816976
-t - Ausgabe in Kurzform
Mit der Option -t (terse) schließlich eine Ausgabe von Datei- / Verzeichnis-Informationen in Kurzform möglich.
stat -t [Datei / Verzeichnis]
Der Befehl stat mit der Option -t ist äquivalent zu folgendem Befehl:
stat -c "%n %s %b %f %u %g %D %i %h %t %T %X %Y %Z %W %o" [Datei / Verzeichnis]
Wird neben der Option -t auch die Option -f zur Anzeige von Dateisystemstatus übergeben, so ist mit folgendem Befehl eine identische Ausgabe zu erhalten:
stat -f -c "%n %i %l %t %s %S %b %f %a %c %d" [Datei / Verzeichnis]
Beispiel: Option -t
Mithilfe der Option -t werden Informationen nun in Kurzform ausgegeben. Angewendet wird der Befehl stat auf einem Verzeichnis /home/hellberg/profi-tutorials/.
Eingabe:
stat -t /home/hellberg/profi-tutorials/
Ausgabe:
Die Ausgabe der Informationen durch Leerzeichen getrennt auf einer Zeile.
/home/hellberg/profi-tutorials/ 4096 8 41ed 1000 1000 803 1059700 9 0 0 1613646867 1611930934 1611930934 0 4096
Formatangaben (Ausgabe)
In diesem Abschnitt werden die verfügbaren Formatangaben für die Optionen -c und --printf aufgelistet. Die Formatangaben sind dabei in zwei Kategorien einzuteilen: Solche, die mit dem Dateistatus verwendet werden (ohne Option -f) und solche, die für Dateisysteme gültig sind (Verwendung der Option -f).
Dateistatus
Es folgen die Formatangaben für Dateistatus:
Sequenz | Ausgabe | Sequenz | Ausgabe |
---|---|---|---|
%a | Oktale Zugriffsrechte | %A | Menschenlesbare Zugriffsrechte |
%b | Anzahl reservierter Blöcke | %B | Größe der mit %b gemeldeten Blöcke |
%C | SELinux-Sicherheitskontext-Zeichenkette | Cell | Cell |
%d | Gerätenummer (dezimal) | %D | Gerätenummer (hexadezimal) |
%f | Raw-Modus (hexadezimal) | %F | Dateityp |
%g | Gruppen-ID des Besitzers | %G | Gruppenname des Besitzers |
%h | Anzahl harter Verknüpfungen | %i | Inode-Nummer |
%m | Einhängepunkt | Cell | Cell |
%n | Dateiname | %N | Dateiname in Anführungsstrichen |
%o | Hinweis auf optimale I/O-Übertragungsgröße | %s | Gesamtgröße (in Bytes) |
%t | Major-Gerätetyp (hexadezimal) für Zeichen-/blockorientierte Spezialdateien | %T | Minor-Gerätetyp (hexadezimal) für Zeichen-/blockorientierte Spezialdateien |
%u | Benutzer-ID des Besitzers | %U | Benutzername des Besitzers |
%w | Menschenlesbare Erstellungszeit | %W | Erstellungszeit in Sekunden seit der Unix-Epoche ("0", falls unbekannt) |
%x | Menschenlesbare letzte Zugriffszeit | %X | Letzte Zugriffszeit in Sekunden seit der Unix-Epoche |
%y | Menschenlesbare letzte Daten-Modifizierungszeit | %Y | Letzte Daten-Modifizierungszeit in Sekunden seit der Unix-Epoche |
%z | Menschenlesbare letzte Status-Änderungszeit | %Z | Letzte Status-Änderungszeit in Sekunden seit der Unix-Epoche |
Dateisysteme
Für Dateisysteme sind folgende Formatangaben gültig:
Sequenz | Ausgabe | Sequenz | Ausgabe |
---|---|---|---|
%a | Freie Blöcke, die nicht-Superusern zur Verfügung stehen | %b | Gesamte Datenblöcke im Dateisystem |
%c | Gesamte Dateiknoten im Dateisystem | %d | Freie Dateiknoten im Dateisystem |
%f | Freie Blöcke im Dateisystem | %i | Dateisystem-ID (hexadezimal) |
%l | Maximale Dateinamen-Länge | %n | Dateiname |
%s | Blockgröße (für schnellere Übertragungen) | %S | Grundlegende Blockgröße |
%t | Dateisystem-ID (hexadezimal) | %T | Menschenlesbare Art des Dateisystems |
Abonniere JETZT unseren Newsletter!
Verpasse nie wieder neue Beiträge und exklusive Insider-Only-Inhalte!