GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Stat-Befehl unter Linux

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.

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.


Linux
  1. Überprüfen Sie den Dateistatus unter Linux mit dem Befehl stat

  2. Linux-wc-Befehl

  3. Linux grep-Befehl

  4. ln-Befehlsbeispiele in Linux

  5. file Befehlsbeispiele in Linux

Gzip-Befehl unter Linux

Befehl zum Aufheben der Verknüpfung in Linux (Datei entfernen)

Gunzip-Befehl unter Linux

Linux-Stat-Befehl erklärt

Beispiele für Linux-Stat-Befehle

Truncate-Befehl unter Linux