stat
ist ein Befehlszeilendienstprogramm, das detaillierte Informationen zu bestimmten Dateien oder Dateisystemen anzeigt.
Dieser Artikel erklärt, wie man stat
verwendet Befehl.
Verwenden des stat
Befehl #
Die Syntax für stat
Befehl lautet wie folgt:
stat [OPTION]... FILE...
stat
akzeptiert eine oder mehrere Eingaben FILE
Namen und enthält eine Reihe von Optionen, die das Befehlsverhalten und die Ausgabe steuern.
Schauen wir uns das folgende Beispiel an:
stat file.txt
Die Ausgabe sieht in etwa so aus:
File: file.txt
Size: 4030 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 13633379 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ linuxize) Gid: ( 1000/ linuxize)
Access: 2019-11-06 09:52:17.991979701 +0100
Modify: 2019-11-06 09:52:17.971979713 +0100
Change: 2019-11-06 09:52:17.971979713 +0100
Birth: -
Beim Aufruf ohne Optionen wird stat
zeigt die folgenden Dateiinformationen an:
- Datei - Der Name der Datei.
- Größe - Die Größe der Datei in Byte.
- Blöcke - Die Anzahl der zugewiesenen Blöcke, die die Datei benötigt.
- IO-Block - Die Größe in Byte jedes Blocks.
- Dateityp - (z. B. normale Datei, Verzeichnis, symbolischer Link.)
- Gerät - Gerätenummer in Hex und Dezimal.
- Inode - Inode-Nummer.
- Links - Anzahl der festen Links.
- Zugriff - Dateiberechtigungen in den numerischen und symbolischen Methoden.
- Uid - Benutzer-ID und Name des Besitzers.
- Gid - Gruppen-ID und Name des Besitzers.
- Kontext – Der SELinux-Sicherheitskontext.
- Zugriff - Der letzte Zugriff auf die Datei.
- Ändern – Der letzte Zeitpunkt, an dem der Inhalt der Datei geändert wurde.
- Änderung – Der letzte Zeitpunkt, an dem das Attribut oder der Inhalt der Datei geändert wurde.
- Geburt - Erstellungszeit der Datei (nicht unterstützt in Linux).
Anzeigen von Informationen über das Dateisystem #
Um Informationen über das Dateisystem zu erhalten, in dem sich die angegebene Datei befindet, verwenden Sie anstelle von Informationen über die Datei selbst den -f
, (--file-system
) Option:
stat -f file.txt
Die Ausgabe des Befehls sieht folgendermaßen aus:
File: "package.json"
ID: 8eb53097b4494d20 Namelen: 255 Type: ext2/ext3
Block size: 4096 Fundamental block size: 4096
Blocks: Total: 61271111 Free: 25395668 Available: 22265851
Inodes: Total: 15630336 Free: 13979610
Wenn stat
wird mit -f
aufgerufen Option, zeigt es die folgenden Informationen:
- Datei - Der Name der Datei.
- ID - Dateisystem-ID in Hex.
- Namelen - Maximale Länge von Dateinamen.
- Grundlegende Blockgröße - Die Größe jedes Blocks im Dateisystem.
- Blöcke:
- Gesamt - Gesamtzahl der Blöcke im Dateisystem.
- Free - Anzahl freier Blöcke im Dateisystem.
- Verfügbar - Anzahl kostenloser Blöcke, die Nicht-Root-Benutzern zur Verfügung stehen.
- Inodes:
- Total – Gesamtzahl der Inodes im Dateisystem.
- Frei - Anzahl freier Inodes im Dateisystem.
Symlinks dereferenzieren (folgen) #
Standardmäßig stat
folgt keinen Symlinks. Wenn Sie den Befehl auf einem Symlink ausführen, enthält die Ausgabe Informationen über den Symlink, nicht die Datei, auf die er verweist:
stat /etc/resolv.conf
File: /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf
Size: 39 Blocks: 0 IO Block: 4096 symbolic link
Device: 801h/2049d Inode: 8126659 Links: 1
Access: (0777/lrwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-11-06 21:12:26.875956073 +0100
Modify: 2018-07-24 11:11:48.128794519 +0200
Change: 2018-07-24 11:11:48.128794519 +0200
Birth: -
Verwenden Sie -L
, um den Symlink zu dereferenzieren (folgen) und Informationen über die Datei anzuzeigen, auf die der Symlink zeigt , (--dereference
) Option:
stat -L /etc/resolv.conf
File: /etc/resolv.conf
Size: 715 Blocks: 8 IO Block: 4096 regular file
Device: 17h/23d Inode: 989 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 101/systemd-resolve) Gid: ( 103/systemd-resolve)
Access: 2019-11-06 20:35:25.603689619 +0100
Modify: 2019-11-06 20:35:25.555689733 +0100
Change: 2019-11-06 20:35:25.555689733 +0100
Birth: -
Anpassen der Ausgabe #
Die stat
Der Befehl hat zwei Optionen, mit denen Sie die Ausgabe an Ihre Bedürfnisse anpassen können:-c
, (--format="format"
) und --printf="format"
.
Der Unterschied zwischen diesen beiden Optionen besteht darin, dass wenn zwei oder mehr Dateien als Operanden --format
verwendet werden fügt nach der Ausgabe jedes Operanden automatisch einen Zeilenumbruch ein. Der --printf
interpretiert Backslash-Escapezeichen.
Es gibt viele Formatanweisungen für Dateien und Dateisysteme, die mit --format
verwendet werden können und --printf
.
Um beispielsweise nur den Dateityp anzuzeigen, würden Sie Folgendes ausführen:
stat --format="%F" /dev/null
character special file
Sie können eine beliebige Anzahl von Formatierungsanweisungen kombinieren und optional benutzerdefinierte Trennzeichen zwischen ihnen verwenden. Das Trennzeichen kann ein einzelnes Zeichen oder eine Zeichenfolge sein:
stat --format="%n,%F" /dev/null
/dev/null,character special file
Um Sonderzeichen wie Newline oder Tab zu interpretieren, verwenden Sie den --printf
Möglichkeit:
stat --printf='Name: %n\nPermissions: %a\n' /etc
\n
gibt eine neue Zeile aus:
Name: /etc
Permissions: 755
Die stat
kann die Informationen auch in knapper Form anzeigen. Dieses Format ist nützlich für die Analyse durch andere Dienstprogramme.
Rufen Sie den Befehl mit -t
auf (--terse
) Option, um die Ausgabe in knapper Form zu drucken:
stat -t /etc
/etc 12288 24 41ed 0 0 801 8126465 147 0 0 1573068933 1573068927 1573068927 0 4096
Für eine vollständige Liste aller Formatanweisungen für Dateien und Dateisysteme geben Sie man stat
ein oder stat --help
in Ihrem Terminal.
Schlussfolgerung #
Die stat
Befehl gibt Informationen über gegebene Dateien und Dateisysteme aus.
Unter Linux können mehrere andere Befehle mit ls
Informationen über bestimmte Dateien anzeigen am häufigsten verwendet, aber es zeigt nur einen Teil der Informationen, die von stat
bereitgestellt werden Befehl.
Wenn Sie Fragen oder Feedback haben, können Sie gerne einen Kommentar hinterlassen.