Die stat
Befehl, im GNU . enthalten coreutils
Paket bietet eine Vielzahl von Metadaten, einschließlich Dateigröße, Inode-Speicherort, Zugriffsberechtigungen und SELinux-Kontext sowie Erstellungs- und Änderungszeiten zu Dateien und Dateisystemen. Dies ist eine bequeme Möglichkeit, Informationen zu sammeln, für die Sie normalerweise mehrere verschiedene Befehle benötigen.
stat unter Linux installieren
Unter Linux haben Sie wahrscheinlich bereits die stat
-Befehl installiert, da er Teil eines zentralen Dienstprogrammpakets ist, das im Allgemeinen standardmäßig mit Linux-Distributionen gebündelt ist.
Falls Sie nicht haben stat
installiert, können Sie installieren coreutils
mit Ihrem Paketmanager.
Alternativ können Sie Coreutils aus dem Quellcode kompilieren.
Abrufen des Status einer Datei
Laufen stat
bietet eine leicht lesbare Ausgabe über eine bestimmte Datei oder ein bestimmtes Verzeichnis.
$ stat planets.xml
File: planets.xml
Size: 325 Blocks: 8 IO Block: 4096 regular file
Device: fd03h/64771d Inode: 140217 Links: 1
Access: (0664/-rw-rw-r--) Uid: (1000/tux) Gid: (100/users)
Context: unconfined_u:object_r:user_home_t:s0
Access: 2021-08-17 18:26:57.281330711 +1200
Modify: 2021-08-17 18:26:58.738332799 +1200
Change: 2021-08-17 18:26:58.738332799 +1200
Birth: 2021-08-17 18:26:57.281330711 +1200
Es mag leicht zu lesen sein, aber es sind immer noch viele Informationen. Hier ist was stat
deckt ab:
- Datei: der Dateiname
- Größe: die Dateigröße in Byte
- Blöcke: die Anzahl der Blöcke auf der Festplatte, die für diese Datei reserviert sind
- E/A-Block: die Größe eines Blocks des Dateisystems
- normale Datei: der Dateityp (reguläre Datei, Verzeichnis, Dateisystem)
- Gerät: das Gerät, auf dem sich die Datei befindet
- Inode: die Inode-Nummer, in der sich die Datei befindet
- Links: die Anzahl der Links zur Datei
- Zugriff, UID, GID: Dateiberechtigungen, Benutzer und Gruppenbesitzer
- Kontext: SELinux-Kontext
- Zugriff, Änderung, Änderung, Geburt: der Zeitstempel, wann auf die Datei zugegriffen, geändert, der Status geändert und erstellt wurde
Kurze Ausgabe
Für Leute, die die Ausgabe gut kennen oder die Ausgabe mit anderen Dienstprogrammen wie awk analysieren möchten, gibt es die --terse
(-t
kurz) Option, die die Ausgabe ohne Überschriften oder Zeilenumbrüche formatiert.
$ stat --terse planets.xml
planets.xml 325 8 81b4 100977 100 fd03 140217 1 0 0 1629181617 1629181618 1629181618 1629181617 4096 unconfined_u:object_r:user_home_t:s0
Wählen Sie Ihr eigenes Format
Sie können Ihr eigenes Ausgabeformat mit dem --printf
-Option und eine Syntax ähnlich wie printf. Jedes Attribut gemeldet von stat
hat eine Formatfolge (%C
für SELinux-Kontext, %n
für Dateinamen usw.), damit Sie auswählen können, was in einem Bericht angezeigt werden soll.
$ stat --printf="%nn%Cn" planets.xml
planets.xml
unconfined_u:object_r:user_home_t:s0
$ $ stat --printf="Name: %nnModified: %yn" planets.xml
Name: planets.xml
Modified: 2021-08-17 18:26:58.738332799 +1200
Hier sind einige gängige Formatsequenzen:
- %ein Zugangsrechte
- %F Dateityp
- %n Dateiname
- % U Nutzername
- % u Benutzeridentifikation
- %g Gruppen-ID
- %w Zeit der Geburt
- %und Änderungszeit
Eine vollständige Auflistung der Formatsequenzen finden Sie im stat
man-Seite und die coreutils
Info-Seiten.
Dateiinformationen
Wenn Sie jemals versucht haben, die Ausgabe von zu analysieren ls -l
, dann werden Sie die Flexibilität des stat
Befehl. Sie benötigen nicht immer jedes Bit der Standardinformationen, die stat
bietet, aber der Befehl ist von unschätzbarem Wert, wenn Sie ihn ganz oder teilweise benötigen. Unabhängig davon, ob Sie die Ausgabe im Standardformat lesen oder Ihre eigenen Abfragen erstellen, die stat
Befehl gibt Ihnen einfachen Zugriff auf die Daten über Ihre Daten.