Stat: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
 
(145 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{DISPLAYTITLE:stat}}
'''stat''' - Dateisystemstatus anzeigen


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.
== Beschreibung ==
Das Programm stat ist im essentiellen Paket '''coreutils''' von Linux enthalten und deshalb auf jedem System bereits vorinstalliert.
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


= Aufruf =
Es gibt Shells mit eingebautem ''stat''. Die Dokumentation der Shell enthält die dort unterstützten Optionen
Die allgemeine Syntax lautet


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


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


== Ausgabe von stat ==
Bei Aufruf von stat ohne Optionen
stat Sample.txt
wird folgendes ausgegeben:
wird folgendes ausgegeben:
 
  Datei: »Sample.txt“
  Datei: »Sample.txt“  
  Größe: 6 Blöcke: 8 EA Block: 4096 Normale Datei <br>
  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>
  Gerät: 801h/2049d Inode: 4257439 Verknüpfungen: 1 <br>
  Gerät: 801h/2049d &nbsp;&nbsp;&nbsp;&nbsp; Inode: 4257439 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  Verknüpfungen: 1 <br>
  Zugriff: (0664/-rw-rw-r--) Uid: ( 1000/ubuntuuser) Gid: ( 1000/ubuntuuser)
  Zugriff: (0664/-rw-rw-r--) &nbsp; Uid: ( 1000/ubuntuuser) &nbsp;  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
*der Dateiname
*der Dateiname
*die Dateigröße (in Bytes)
*die Dateigröße (in Bytes)
Zeile 47: Zeile 50:
*der Dateityp
*der Dateityp
*Inode
*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 ===
=== Zugriffsrechte ===
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
=== 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.&nbsp;B.&nbsp; Dateirechte) an
Mit [[touch |touch]] lassen sich Zeitstempel ändern


  Zugriff: (0664/-rw-rw-r--) Uid: ( 1000/user)  Gid: ( 1000/user) </code>
  '''Hinweis '''
  Der unter Windows vorhandene Zeitstempel ''"Erstellt am…"'' ist zwar auch bei Linux (<tt>crtime</tt>, ab ext3) vorhanden, kann aber nicht ausgelesen werden


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.
=== Dateityp anzeigen ===
$ '''stat -c %F datei.txt '''
Normale leere Datei


=== Bedeutung der Zeitstempel ===
=== 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


  Zugriff    : 2012-10-10 13:20:00.000000000 +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:
  Modifiziert: 2012-10-10 09:13:29.000000000 +0200
  $ '''stat --printf "Dateiname: %n\nOrt des Einhaengens: %m\nNutzername: %U\nGesamtgroesse: %s\n" datei.txt'''
  Geändert  : 2012-10-10 13:20:00.484609642 +0200
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:


Die einzelnen Zeitstempel haben folgende Bedeutung:
$ '''stat -c '%A %a %n' *'''
*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 ===
== Syntax ==
Die Inode sind der Dreh- und Angelpunkt sämtlicher Dateizugriffe. </br>
$ '''stat [OPTION]… DATEI…'''
Ein Großteil der Arbeit des Betriebssystems ist die Umsetzung von Dateinamen in die dazugehörige Inodes. </br>
=== Optionen ===
Inodes werden innerhalb der Filesysteme in Inode-Listen geführt. </br>
{| class="wikitable sortable"
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.
! Unix !! GNU !! Beschreibung
</br>
|-
|| -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.)
|-
|| -f || --file-system || Dateisystemstatus anstelle von Dateistatus anzeigen
|-
|| -c=FORMAT || --format=FORMAT || Das angegebene [http://wiki.ubuntuusers.de/stat#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 [http://wiki.ubuntuusers.de/stat#Formatangaben FORMAT] eingefügt werden
|-
|| -t || --terse || Information in knapper Form ausgeben
|-
|| || --help || Hilfe anzeigen
|-
|| || --version || Versionsinformation anzeigen
|-
|}


= Aufgaben =
==== Formatangaben ====
<div class="toccolours mw-collapsible mw-collapsed">
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:
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">
{| class="wikitable sortable big"
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>
| | %a
</div>
| | Zugriffsrechte im [http://wiki.ubuntuusers.de/Rechte#Oktale-Darstellung Oktalformat]
|-
| | %A
| | [http://wiki.ubuntuusers.de/Rechte 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


<div class="toccolours mw-collapsible mw-collapsed">
=== Parameter ===
Wie ruft man die Informationen zum Dateisystem der Datei auf? <div class="mw-collapsible-content">Antwort:<code>stat -f sample.txt
=== Umgebungsvariablen ===
</code>
=== Exit-Status ===
</div>
== Dokumentation ==
</div>
=== Man-Pages ===
=== Info-Pages ===
# info '(coreutils) stat invocation


= Links =
== Siehe auch ==
[https://dr-luthardt.de/linux.htm?tip=crtime Creation Time von Dateien und Ordnern anzeigen] {de}
# [[statfs]](2)
# [[statx]](2)
# [[Inode]]


[http://www.gnu.org/software/coreutils/ GNU Core Utilities] {en}
== Links ==
=== Projekt-Homepage ===
# https://www.gnu.org/software/coreutils/stat


[https://manpages.ubuntu.com/ Manpage] {en}
=== Weblinks ===
[[Category:Software-Verwaltung]]
[[Kategorie:Linux/Befehl]]
[[Category:Linux]]
[[Kategorie:Linux/Datei/Eigenschaft]]
[[Category:LPIC]]
[[Category:Linux:LPIC:101]]
[[Category:LPIC102]]
[[Category:Linuxbefehle]]

Aktuelle Version vom 9. März 2024, 12:35 Uhr

stat - Dateisystemstatus anzeigen

Beschreibung[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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

Anwendung[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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

Zugriffsrechte in symbolisch und Zeitstempel des letzten Zugriffs anzeigen[Bearbeiten | Quelltext bearbeiten]

$ 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' *

Syntax[Bearbeiten | Quelltext bearbeiten]

$ stat [OPTION]… DATEI…

Optionen[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

Umgebungsvariablen[Bearbeiten | Quelltext bearbeiten]

Exit-Status[Bearbeiten | Quelltext bearbeiten]

Dokumentation[Bearbeiten | Quelltext bearbeiten]

Man-Pages[Bearbeiten | Quelltext bearbeiten]

Info-Pages[Bearbeiten | Quelltext bearbeiten]

  1. info '(coreutils) stat invocation

Siehe auch[Bearbeiten | Quelltext bearbeiten]

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

Links[Bearbeiten | Quelltext bearbeiten]

Projekt-Homepage[Bearbeiten | Quelltext bearbeiten]

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

Weblinks[Bearbeiten | Quelltext bearbeiten]