[[Vorlage(Getestet, general)]] {{{#!vorlage Wissen [:Terminal:Ein Terminal öffnen] }}} [[Inhaltsverzeichnis(1)]] [[Bild(Wiki/Icons/terminal.png, 48, align=left)]] Mit dem Befehl `stat` (von '''stat'''us) lassen sich Zugriffs- und Änderungs-Zeitstempel von Dateien und Ordnern anzeigen. Weiterhin werden Informationen zu [:Rechte: Rechten], zu Besitzer und Gruppe und zum Dateityp ausgegeben. Durch [#Formatangaben Formatangaben] ist die Ausgabe gemäß den eigenen Bedürfnissen darstellbar. = Installation = Das Programm stat ist im essentiellen Paket * '''coreutils''' von Ubuntu enthalten und deshalb auf jedem System bereits vorinstalliert. = Aufruf = Die allgemeine Syntax lautet [1]: {{{#!vorlage Befehl stat OPTION DATEI }}} == Optionen == `stat` kennt folgende Optionen: {{{#!vorlage Tabelle Optionen von `stat` +++ Option Beschreibung +++ `-L` oder `--dereference` [:ln#Symbolische-Verknuepfungen:Verknüpfungen] folgen (Im Unterschied zu normalen Programmen gibt `stat` standardmäßig Informationen zur symbolischen Verknüpfung selbst aus und nicht zur Datei auf die sie zeigt.) +++ `-f` oder `--file-system` Dateisystemstatus anstelle von Dateistatus anzeigen +++ `-c=FORMAT` oder `--format=FORMAT` Das angegebene [#Formatangaben FORMAT] anstelle der Voreinstellung benutzen; Zeilenvorschub nach jeder Benutzung +++ `--printf=FORMAT` Wie `--format`, aber Rückschrägstrich‐Steuerzeichen auswerten, kein obligatorischer Zeilenvorschub; letzterer kann mittels \n in [#Formatangaben FORMAT] eingefügt werden +++ `-t` oder `--terse` Information in knapper Form ausgeben +++ `--help` Hilfe anzeigen +++ `--version` Versionsinformation anzeigen }}} == Formatangaben == Bei den Optionen `-c=FORMAT`, `--format=FORMAT` und `--printf=FORMAT` sind für `FORMAT` folgende Formatangaben möglich: {{{#!vorlage Tabelle Formatangaben von `stat` +++ Option Beschreibung +++ `%a` Zugriffsrechte im [:Rechte#Oktale-Darstellung:Oktalformat] +++ `%A` [:Rechte:Zugriffsrechte] in menschenlesbarer Form +++ `%F` Dateityp +++ `%m` Ort des Einhängens +++ `%n` Dateiname +++ `%s` Gesamtgröße in Bytes +++ `%U` Nutzername des Besitzers +++ `%G` Gruppenname der Datei +++ `%x` Zeit des letzten Zugriffs +++ `%y` Zeit der letzten Modifikation +++ `%z` Zeit der letzten Änderung }}} Weitere Formatangaben sind der [:Manpage:] zu entnehmen. == Ausgabe von stat == Bei Aufruf von stat ohne Optionen {{{#!vorlage Befehl stat datei.txt }}} wird folgendes ausgegeben: {{{ Datei: »datei.txt“ Größe: 6 Blöcke: 8 EA Block: 4096 Normale Datei Gerät: 801h/2049d Inode: 4257439 Verknüpfungen: 1 Zugriff: (0664/-rw-rw-r--) Uid: ( 1000/ubuntuuser) Gid: ( 1000/ubuntuuser) Zugriff : 2012-10-10 13:20:00.000000000 +0200 Modifiziert: 2012-10-10 09:13:29.000000000 +0200 Geändert : 2012-10-10 13:20:00.484609642 +0200 Geburt : - }}} === Allgemeine Dateiinformationen === {{{ Datei: »datei.txt“ Größe: 6 Blöcke: 8 EA Block: 4096 Normale Datei (…) }}} Ausgegeben wird: * der Dateiname * die Dateigröße (in Bytes) * die Anzahl der auf dem Dateisystem reservierten Blöcke (512 Bytes pro Block) * die typische Größe eines Blocks, der bei der Eingabe und Ausgabe mit einem mal vom Dateisystem gelesen bzw. geschrieben wird (in Bytes) * der Dateityp In dem Beispiel ist die Datei `datei.txt` 6 Bytes groß, belegt aber 8*512 = 4096 Bytes an Festplattenplatz, da dies dies die minimale Blockgröße des aktuellen Dateisystems ist. === Zugriffsrechte === {{{ (…) Zugriff: (0664/-rw-rw-r--) Uid: ( 1000/ubuntuuser) Gid: ( 1000/ubuntuuser) (…) }}} Es werden die Zugriffsrechte in [:Rechte#Oktale-Darstellung: oktaler] und in [:Rechte#Rechte-in-symbolischer-Darstellung: menschenlesbarer Form] angezeigt. ID und Name des Besitzers sind angegeben, ebenso wie ID und Name der Gruppe. === Bedeutung der Zeitstempel === {{{ (…) Zugriff : 2012-10-10 13:20:00.000000000 +0200 Modifiziert: 2012-10-10 09:13:29.000000000 +0200 Geändert : 2012-10-10 13:20:00.484609642 +0200 (…) }}} Die einzelnen Zeitstempel haben folgende Bedeutung: * ''"Zugriff"'' - gibt den Zeitstempel an, wann die Datei zum letzten Mal gelesen wurde. * ''"Modifiziert"'' - gibt den Zeitstempel der letzten Änderung des Dateiinhalts an. * ''"Geändert"'' - gibt den Zeitstempel der letzten Änderung der Metadaten (z.B. Dateirechte) an. Mit [:touch:] lassen sich diese Zeitstempel verändern. {{{#!vorlage Hinweis Der unter Windows vorhandene Zeitstempel ''"Erstellt am…"'' ist zwar auch bei Linux (`crtime`, ab ext3) vorhanden, kann aber nicht ausgelesen werden ([bug:997093:]). }}} = Beispiele = * Dateityp der Datei '''datei.txt''' anzeigen: {{{#!vorlage Befehl stat -c %F datei.txt }}} {{{ Normale leere Datei }}} * Für die Datei '''datei.txt''' die Zugriffsrechte in menschenlesbarem Format und den Zeitstempel des letzten Zugriffs anzeigen: {{{#!vorlage Befehl stat --format %A%x datei.txt }}} {{{ -rw-rw-r--2012-10-15 19:12:17.315844786 +0200 }}} * Für die Datei '''datei.txt''' den Dateinamen, den Ort des Einhängens, den Nutzername des Besitzers und die Gesamtgröße anzeigen und dabei die Formatierung der Ausgaben vorgeben: {{{#!vorlage Befehl stat --printf "Dateiname: %n\nOrt des Einhaengens: %m\nNutzername: %U\nGesamtgroesse: %s\n" datei.txt }}} {{{ Dateiname: datei.txt Ort des Einhaengens: / Nutzername: ubuntuuser Gesamtgroesse: 13 }}} * Informationen zum Dateisystem der Datei '''datei.txt''' anzeigen: {{{#!vorlage Befehl stat -f datei.txt }}} {{{ Datei: "datei.txt" ID: 84dc3e24ed064a9f Namenslänge: 255 Typ: ext2/ext3 Blockgröße: 4096 Fundamentale Blockgröße: 4096 Blöcke: Gesamt: 76409150 Frei: 47061485 Verfügbar: 43180129 Inodes: Gesamt: 19406848 Frei: 18755502 }}} * oktale Dateirechte aller Dateien im aktuellen Ordner: {{{#!vorlage Befehl stat -c '%A %a %n' * }}} = Links = * [https://dr-luthardt.de/linux.htm?tip=crtime Creation Time von Dateien und Ordnern anzeigen] {de} * [http://www.gnu.org/software/coreutils/ GNU Core Utilities] {en} * [:Shell/Befehlsübersicht:] {Übersicht} Übersicht über verschiedene Shell-Befehle # tag: Shell