Stat: Unterschied zwischen den Versionen

Aus Foxwiki
K Textersetzung - „== Syntax ==“ durch „== Aufruf ==“
 
(122 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''topic''' kurze Beschreibung
{{DISPLAYTITLE:stat}}
'''stat''' - Dateisystemstatus anzeigen


= Beschreibung =
== Beschreibung ==
Mit dem Befehl '''stat''' lassen sich Zugriffs- und Änderungs-Zeitstempel von Dateien und Ordnern anzeigen. Weiterhin werden Informationen zu '''Rechten''', zu Besitzer und Gruppe und zum Dateityp ausgegeben.
Mit dem Befehl <tt>stat</tt> ('''stat'''us) lassen sich Zugriffs- und Änderungs-Zeitstempel von Dateien und Ordnern anzeigen
* Weiterhin werden Informationen zu, zu Besitzer und Gruppe und zum Dateityp ausgegeben
* Durch [http://wiki.ubuntuusers.de/stat#Formatangaben Formatangaben] ist die Ausgabe gemäß den eigenen Bedürfnissen darstellbar


= Installation =
Es gibt Shells mit eingebautem ''stat''. Die Dokumentation der Shell enthält die dort unterstützten Optionen
Das Programm stat ist im essentiellen Paket '''coreutils''' von Linux enthalten und deshalb auf jedem System bereits vorinstalliert.


= Syntax =
; Welches ''stat'' wird aufgerufen?
  $ '''stat Option Datei'''
  $ '''type stat'''
stat ist /usr/bin/stat


== Parameter ==
== Installation ==
== Optionen ==
'''stat''' ist Teil des essenziellen Pakets ''[[coreutils]]'' und auf jedem [[GNU-System]] installiert
{| class="wikitable"
 
|-
== Anwendung ==
| -L oder --dereference || 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.)
Datei: »datei.txt“
|-
Größe: 6 Blöcke: 8 EA Block: 4096 Normale Datei
| --printf=FORMAT  || Wie --format, aber Rückschrägstrich‐Steuerzeichen auswerten, kein obligatorischer Zeilenvorschub; letzterer kann mittels \n in FORMAT eingefügt werden
  ()
|-
 
| -c=FORMAT oder <br>format=FORMAT || Das angegebene FORMAT anstelles der Voreinstellung benutzen; Zeilenvorschub nach jeder Benutzung
Ausgegeben wird:
|-
* der Dateiname
| -f oder --file-system  || Dateisystemstatus anstelle von Dateistatus anzeigen
* die Dateigröße (in Bytes)
|-
* die Anzahl der auf dem Dateisystem reservierten Blöcke (512 Bytes pro Block)
| -t oder --terse || Information in knapper Form ausgeben
* die typische Größe eines Blocks, der bei der Eingabe und Ausgabe mit einem mal vom Dateisystem gelesen bzw
|-
* geschrieben wird (in Bytes)
| --version || Versionsinformation anzeigen
* der Dateityp
|-
| --help  || Hilfe anzeigen
|}


= Konfiguration =
In dem Beispiel ist die Datei <tt>datei.txt</tt> 6 Bytes groß, belegt aber 8*512 = 4096 Bytes an Festplattenplatz, da dies die minimale Blockgröße des aktuellen Dateisystems ist
== Dateien ==


= Anwendungen =
== Ausgabe von stat ==
Bei Aufruf von stat ohne Optionen
  $ '''stat Sample.txt'''
  $ '''stat Sample.txt'''


wird folgendes ausgegeben:
wird folgendes ausgegeben:
  Datei: »Sample.txt“  
  Datei: »Sample.txt“
  Größe: 6   &nbsp;&nbsp;&nbsp;&nbsp; Blöcke: 8   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;      EA Block: 4096 &nbsp;&nbsp;&nbsp;&nbsp;  Normale Datei <br>
  Größe: 6 Blöcke: 8 EA Block: 4096 Normale Datei <br>
  Gerät: 801h/2049d &nbsp;&nbsp;&nbsp;&nbsp; Inode: 4257439 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  Verknüpfungen: 1 <br>
  Gerät: 801h/2049d Inode: 4257439 Verknüpfungen: 1 <br>
  Zugriff: (0664/-rw-rw-r--) &nbsp; Uid: ( 1000/ubuntuuser) &nbsp;  Gid: ( 1000/ubuntuuser)
  Zugriff: (0664/-rw-rw-r--) Uid: ( 1000/ubuntuuser) Gid: ( 1000/ubuntuuser)
  Zugriff   : 2012-10-10 13:20:00.000000000 +0200
  Zugriff : 2012-10-10 13:20:00.000000000 +0200
  Modifiziert: 2012-10-10 09:13:29.000000000 +0200
  Modifiziert: 2012-10-10 09:13:29.000000000 +0200
  Geändert   : 2012-10-10 13:20:00.484609642 +0200
  Geändert : 2012-10-10 13:20:00.484609642 +0200
  Geburt   : -
  Geburt : -


Ausgegeben wird
Ausgegeben wird
Zeile 57: Zeile 53:
  $ '''LANG=C stat testfile'''
  $ '''LANG=C stat testfile'''
  File: testfile
  File: testfile
  Size: 0               Blocks: 0         IO Block: 4096   regular empty file
  Size: 0 Blocks: 0 IO Block: 4096 regular empty file
  Device: 2dh/45d Inode: 124131251   Links: 1
  Device: 2dh/45d Inode: 124131251 Links: 1
  Access: (0644/-rw-r--r--) Uid: ( 1000/dirkwagner)   Gid: ( 1000/dirkwagner)
  Access: (0644/-rw-r--r--) Uid: ( 1000/dirkwagner) Gid: ( 1000/dirkwagner)
  Access: 2022-03-14 00:40:56.690663102 +0100
  Access: 2022-03-14 00:40:56.690663102 +0100
  Modify: 2022-03-14 00:40:56.690663432 +0100
  Modify: 2022-03-14 00:40:56.690663432 +0100
Zeile 66: Zeile 62:


=== Zugriffsrechte ===
=== Zugriffsrechte ===
  Zugriff: (0664/-rw-rw-r--) Uid: ( 1000/user)   Gid: ( 1000/user) </code>
  Zugriff: (0664/-rw-rw-r--) Uid: ( 1000/user) Gid: ( 1000/user) </code>
 
Es werden die Zugriffsrechte in 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.


=== kurze Erklärung von Inode ===
* Es werden die Zugriffsrechte in oktaler und in [:Rechte#Rechte-in-symbolischer-Darstellung: menschenlesbarer Form angezeigt
Die Inode sind der Dreh- und Angelpunkt sämtlicher Dateizugriffe.  </br>
* ID und Name des Besitzers sind angegeben, ebenso wie ID und Name der Gruppe
Ein Großteil der Arbeit des Betriebssystems ist die Umsetzung von Dateinamen in die dazugehörige Inodes. </br>
Inodes werden innerhalb der Filesysteme in Inode-Listen geführt. </br>
Inodes sind definierte Datenstrukturen, die eine Datei eindeutig beschreiben und verwalten können. </br>
Die restlichen Blöcke im Filesystem, die nicht von den Inodes belegt werden, sind die Blöcke für die Daten.
</br>


= Dokumentation =
=== Zeitstempel ===
== Man-Pages ==
== Info-Pages ==
= Links =
== Intern ==
== Weblinks ==
 
= Kontrollfragen =
<div class="toccolours mw-collapsible mw-collapsed">
Was bewirkt folgender Befehl<code>stat -c %F sample.txt </code> ?
<div class="mw-collapsible-content">Antwort: Er zeigt den Dateityp von datei.txt.</div>
</div>
</div>
 
<div class="toccolours mw-collapsible mw-collapsed">
Wie lautet der befehl für eine Datei die Zugriffsrechte in menschenlesbarem Format und den Zeitstempel des letzten Zugriffs anzeigen zulassen?  <div class="mw-collapsible-content">Antwort:<code>stat --format %A%x sample.txt</code>
</div>
</div>
 
<div class="toccolours mw-collapsible mw-collapsed">
Wie ruft man die Informationen zum Dateisystem der Datei auf? <div class="mw-collapsible-content">Antwort:<code>stat -f sample.txt
</code>
</div>
</div>
 
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 4''
<div class="mw-collapsible-content">'''Antwort4'''</div>
</div>
 
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 5''
<div class="mw-collapsible-content">'''Antwort5'''</div>
</div>
 
= 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}
# [https://manpages.ubuntu.com/ Manpage] {en}
 
= Dateieistatus anzeigen ([http://wiki.ubuntuusers.de/stat?action=backlinks stat]) =
Mit dem Befehl <tt>stat</tt> (von '''stat'''us) lassen sich Zugriffs- und Änderungs-Zeitstempel von Dateien und Ordnern anzeigen.
* Weiterhin werden Informationen zu [http://wiki.ubuntuusers.de/Rechte Rechten], zu Besitzer und Gruppe und zum Dateityp ausgegeben.
* Durch [http://wiki.ubuntuusers.de/stat#Formatangaben Formatangaben] ist die Ausgabe gemäß den eigenen Bedürfnissen darstellbar.
 
== Ausgabe von stat ==
Bei Aufruf von stat ohne Optionen
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
  Zugriff : 2012-10-10 13:20:00.000000000 +0200
  Modifiziert: 2012-10-10 09:13:29.000000000 +0200
  Modifiziert: 2012-10-10 09:13:29.000000000 +0200
  Geändert : 2012-10-10 13:20:00.484609642 +0200
  Geändert : 2012-10-10 13:20:00.484609642 +0200
Geburt : -


=== Allgemeine Dateiinformationen ===
Die einzelnen Zeitstempel haben folgende Bedeutung:
Datei: »datei.txt“
* '''Zugriff''' - gibt den Zeitstempel an, wann die Datei zum letzten Mal gelesen wurde
Größe: 6 Blöcke: 8 EA Block: 4096 Normale Datei
* '''Modifiziert''' - gibt den Zeitstempel der letzten Änderung des Dateiinhalts an
()
* '''Geändert''' - gibt den Zeitstempel der letzten Änderung der Metadaten (z.&nbsp;B.&nbsp; Dateirechte) an


Ausgegeben wird: * der Dateiname
Mit [[touch |touch]] lassen sich Zeitstempel ändern
* 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 <tt>datei.txt</tt> 6 Bytes groß, belegt aber 8*512 = 4096 Bytes an Festplattenplatz, da dies dies die minimale Blockgröße des aktuellen Dateisystems ist.
'''Hinweis '''
Der unter Windows vorhandene Zeitstempel ''"Erstellt am…"'' ist zwar auch bei Linux (<tt>crtime</tt>, ab ext3) vorhanden, kann aber nicht ausgelesen werden


=== Zugriffsrechte ===
=== Dateityp anzeigen ===
(…)
  $ '''stat -c %F datei.txt '''
  Zugriff: (0664/-rw-rw-r--) Uid: ( 1000/ubuntuuser) Gid: ( 1000/ubuntuuser)
  Normale leere Datei
  (…)


Es werden die Zugriffsrechte in [http://wiki.ubuntuusers.de/Rechte#Oktale-Darstellung oktaler] und in [http://wiki.ubuntuusers.de/Rechte#Rechte-in-symbolischer-Darstellung menschenlesbarer Form] angezeigt.
=== Zugriffsrechte in symbolisch und Zeitstempel des letzten Zugriffs anzeigen ===
* ID und Name des Besitzers sind angegeben, ebenso wie ID und Name der Gruppe.
$ '''stat --format %A%x datei.txt'''
-rw-rw-r--2012-10-15 19:12:17.315844786 +0200


====== Bedeutung der Zeitstempel ======
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:
(…)
  $ '''stat --printf "Dateiname: %n\nOrt des Einhaengens: %m\nNutzername: %U\nGesamtgroesse: %s\n" datei.txt'''
  Zugriff : 2012-10-10 13:20:00.000000000 +0200
  Dateiname: datei.txt
  Modifiziert: 2012-10-10 09:13:29.000000000 +0200
Ort des Einhaengens: /
  Geändert : 2012-10-10 13:20:00.484609642 +0200
Nutzername: ubuntuuser
(…)
  Gesamtgroesse: 13* Informationen zum Dateisystem der Datei '''datei.txt''' anzeigen:


Die einzelnen Zeitstempel haben folgende Bedeutung: * ''"Zugriff"'' - gibt den Zeitstempel an, wann die Datei zum letzten Mal gelesen wurde.
$ '''stat -f datei.txt '''
* ''"Modifiziert"'' - gibt den Zeitstempel der letzten Änderung des Dateiinhalts an.
Datei: "datei.txt"
* ''"Geändert"'' - gibt den Zeitstempel der letzten Änderung der Metadaten (z.B.
ID: 84dc3e24ed064a9f Namenslänge: 255 Typ: ext2/ext3
* Dateirechte) an.
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:


Mit touch lassen sich diese Zeitstempel verändern.
$ '''stat -c '%A %a %n' *'''


===== Hinweis =====
== Aufruf ==
Der unter Windows vorhandene Zeitstempel ''"Erstellt am…"'' ist zwar auch bei Linux (<tt>crtime</tt>, ab ext3) vorhanden, kann aber nicht ausgelesen werden.
$ '''stat [OPTION]… DATEI…'''
 
=== Optionen ===
===== Optionen =====
{| class="wikitable sortable"
{| class="wikitable sortable"
|-
! Unix !! GNU !! Beschreibung
|-
|-
| | <tt>-L</tt> oder <tt>--dereference</tt>
|| -L || --dereference || [http://wiki.ubuntuusers.de/ln#Symbolische-Verknuepfungen Verknüpfungen] folgen (Im Unterschied zu normalen Programmen gibt <tt>stat</tt> standardmäßig Informationen zur symbolischen Verknüpfung selbst aus und nicht zur Datei auf die sie zeigt.)
| | [http://wiki.ubuntuusers.de/ln#Symbolische-Verknuepfungen Verknüpfungen] folgen (Im Unterschied zu normalen Programmen gibt <tt>stat</tt> standardmäßig Informationen zur symbolischen Verknüpfung selbst aus und nicht zur Datei auf die sie zeigt.)  
|-
|-
| | <tt>-f</tt> oder <tt>--file-system</tt>
|| -f || --file-system || Dateisystemstatus anstelle von Dateistatus anzeigen
| | Dateisystemstatus anstelle von Dateistatus anzeigen  
|-
|-
| | <tt>-c=FORMAT</tt> oder <tt>--format=FORMAT</tt>
|| -c=FORMAT || --format=FORMAT || Das angegebene [http://wiki.ubuntuusers.de/stat#Formatangaben FORMAT] anstelle der Voreinstellung benutzen; Zeilenvorschub nach jeder Benutzung
| | Das angegebene [http://wiki.ubuntuusers.de/stat#Formatangaben FORMAT] anstelles der Voreinstellung benutzen; Zeilenvorschub nach jeder Benutzung  
|-
|-
| | <tt>--printf=FORMAT</tt>
|| || --printf=FORMAT || Wie --format, aber Rückschrägstrich‐Steuerzeichen auswerten, kein obligatorischer Zeilenvorschub; letzterer kann mittels \n in [http://wiki.ubuntuusers.de/stat#Formatangaben FORMAT] eingefügt werden
| | Wie <tt>--format</tt>, aber Rückschrägstrich‐Steuerzeichen auswerten, kein obligatorischer Zeilenvorschub; letzterer kann mittels \n in [http://wiki.ubuntuusers.de/stat#Formatangaben FORMAT] eingefügt werden  
|-
|-
| | <tt>-t</tt> oder <tt>--terse</tt>
|| -t || --terse || Information in knapper Form ausgeben
| | Information in knapper Form ausgeben  
|-
|-
| | <tt>--help</tt>
|| || --help || Hilfe anzeigen
| | Hilfe anzeigen  
|-
|-
| | <tt>--version</tt>
|| || --version || Versionsinformation anzeigen
| | Versionsinformation anzeigen  
 
|-
|-
|}
|}
===== Formatangaben =====
Bei den Optionen <tt>-c=FORMAT</tt>, <tt>--format=FORMAT</tt> und <tt>--printf=FORMAT</tt> sind für <tt>FORMAT</tt> folgende Formatangaben möglich:


{| class="wikitable sortable"
==== Formatangaben ====
Bei den Optionen <tt>-c=FORMAT</tt>, <tt>--format=FORMAT</tt> und <tt>--printf=FORMAT</tt> sind für <tt>FORMAT</tt> folgende Formatangaben möglich:
 
{| class="wikitable sortable big"
|-
|-
| | %a  
| | %a
| | Zugriffsrechte im [http://wiki.ubuntuusers.de/Rechte#Oktale-Darstellung Oktalformat]  
| | Zugriffsrechte im [http://wiki.ubuntuusers.de/Rechte#Oktale-Darstellung Oktalformat]
|-
|-
| | %A  
| | %A
| | [http://wiki.ubuntuusers.de/Rechte Zugriffsrechte] in menschenlesbarer Form  
| | [http://wiki.ubuntuusers.de/Rechte Zugriffsrechte] in menschenlesbarer Form
|-
|-
| | %F  
| | %F
| | Dateityp  
| | Dateityp
|-
|-
| | %m  
| | %m
| | Ort des Einhängens  
| | Ort des Einhängens
|-
|-
| | %n  
| | %n
| | Dateiname  
| | Dateiname
|-
|-
| | %s  
| | %s
| | Gesamtgröße in Bytes  
| | Gesamtgröße in Bytes
|-
|-
| | %U  
| | %U
| | Nutzername des Besitzers  
| | Nutzername des Besitzers
|-
|-
| | %x  
| | %x
| | Zeit des letzten Zugriffs  
| | Zeit des letzten Zugriffs
|-
|-
| | %y  
| | %y
| | Zeit der letzten Modifikation  
| | Zeit der letzten Modifikation
|-
|-
| | %z  
| | %z
| | Zeit der letzten Änderung  
| | Zeit der letzten Änderung
|-
|-
|}
|}
Weitere Formatangaben sind der Manpage zu entnehmen.
Weitere Formatangaben sind der Manpage zu entnehmen
 
===== Beispiele =====
Dateityp der Datei '''datei.txt''' anzeigen:
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:
 
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:
 
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:
 
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:
 
stat -c '%A %a %n' *


= Links =
=== Parameter ===
== Dateien ==
=== Umgebung ===
== Man-Pages ==
=== Rückgabewert ===
== Intern ==
== Dokumentation ==
== Weblinks ==
=== Man-Page ===
=== Info-Pages ===
# info '(coreutils) stat invocation


=Kontrollfragen=
== Siehe auch ==
<div class="toccolours mw-collapsible mw-collapsed">
# [[statfs]](2)
''Testfrage 1''
# [[statx]](2)
<div class="mw-collapsible-content">'''Antwort1'''</div>
# [[Inode]]
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 2''
<div class="mw-collapsible-content">'''Antwort2'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 3''
<div class="mw-collapsible-content">'''Antwort3'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 4''
<div class="mw-collapsible-content">'''Antwort4'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 5''
<div class="mw-collapsible-content">'''Antwort5'''</div>
</div>


== Links ==
=== Projekt-Homepage ===
# https://www.gnu.org/software/coreutils/stat


= tmp =
=== Weblinks ===
=== stat ===
[[Kategorie:Linux/Befehl]]
Der Befehl '''stat''' ohne Optionen kann alle Zeitstempel und alle anderen Informationen einer Datei auflisten.
[[Kategorie:Linux/Datei/Eigenschaft]]
* Siehe dazu auch das dokumentierte Beispiel unter [http://wiki.linux-club.de/opensuse/Inode Inode].
* Es ist aber auch möglich die Ausgabe von '''stat''' nach seinen eigenen Vorstellungen zu formatieren.
* Folgender Befehl listet die Dateinamen und die Zeitstempel aller Dateien im Verzeichnis auf:
* stat -c "Filename&nbsp;:&nbsp;%n
atime &nbsp;:&nbsp;%x
mtime &nbsp;:&nbsp;%y
ctime &nbsp;:&nbsp;%z
" *
* Das Format der Ausgabe dieses Befehles für jede Datei
* Filename&nbsp;: test
atime &nbsp;: 2006-11-03 18:17:42.764670001 +0100
mtime &nbsp;: 2006-10-25 20:42:55.000000000 +0200
ctime &nbsp;: 2006-10-25 20:42:55.000000000 +0200
* genaue Beschreibungen aller Optionen und weitere Möglichkeiten zeigt die [http://man.splitbrain.org/stat Manpage von stat]

Aktuelle Version vom 12. November 2024, 19:40 Uhr

stat - Dateisystemstatus anzeigen

Beschreibung

Mit dem Befehl stat (status) lassen sich Zugriffs- und Änderungs-Zeitstempel von Dateien und Ordnern anzeigen

  • Weiterhin werden Informationen zu, zu Besitzer und Gruppe und zum Dateityp ausgegeben
  • Durch Formatangaben ist die Ausgabe gemäß den eigenen Bedürfnissen darstellbar
Es gibt Shells mit eingebautem stat. Die Dokumentation der Shell enthält die dort unterstützten Optionen
Welches stat wird aufgerufen?
$ type stat
stat ist /usr/bin/stat

Installation

stat ist Teil des essenziellen Pakets coreutils und auf jedem GNU-System installiert

Anwendung

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 die minimale Blockgröße des aktuellen Dateisystems ist

$ stat Sample.txt

wird folgendes ausgegeben:

Datei: »Sample.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 : -

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
  • Inode
$ LANG=C stat testfile
File: testfile
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 2dh/45d Inode: 124131251 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/dirkwagner) Gid: ( 1000/dirkwagner)
Access: 2022-03-14 00:40:56.690663102 +0100
Modify: 2022-03-14 00:40:56.690663432 +0100
Change: 2022-03-14 00:40:56.684708135 +0100
Birth: -

Zugriffsrechte

Zugriff: (0664/-rw-rw-r--) Uid: ( 1000/user) Gid: ( 1000/user) 
  • Es werden die Zugriffsrechte in 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

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 Zeitstempel ändern

Hinweis 
Der unter Windows vorhandene Zeitstempel "Erstellt am…" ist zwar auch bei Linux (crtime, ab ext3) vorhanden, kann aber nicht ausgelesen werden

Dateityp anzeigen

$ stat -c %F datei.txt 
Normale leere Datei

Zugriffsrechte in symbolisch und Zeitstempel des letzten Zugriffs anzeigen

$ 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:

$ 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:
$ 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:
$ stat -c '%A %a %n' *

Aufruf

$ stat [OPTION]… DATEI…

Optionen

Unix GNU Beschreibung
-L --dereference 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 --file-system Dateisystemstatus anstelle von Dateistatus anzeigen
-c=FORMAT --format=FORMAT Das angegebene 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 FORMAT eingefügt werden
-t --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:

%a Zugriffsrechte im Oktalformat
%A Zugriffsrechte in menschenlesbarer Form
%F Dateityp
%m Ort des Einhängens
%n Dateiname
%s Gesamtgröße in Bytes
%U Nutzername des Besitzers
%x Zeit des letzten Zugriffs
%y Zeit der letzten Modifikation
%z Zeit der letzten Änderung

Weitere Formatangaben sind der Manpage zu entnehmen

Parameter

Umgebung

Rückgabewert

Dokumentation

Man-Page

Info-Pages

  1. info '(coreutils) stat invocation

Siehe auch

  1. statfs(2)
  2. statx(2)
  3. Inode

Links

Projekt-Homepage

  1. https://www.gnu.org/software/coreutils/stat

Weblinks