Dr. Luthardt's Chemieseiten 

weiter


Valid HTML 4.01!Achtung Ein direkter Aufruf des Validators ist von https-Seiten aus nicht möglich. Hier muss die zu prüfende Seite händisch auf der Validator-Seite eingeben werden.
Valid CSS!Achtung Ein direkter Aufruf des Validators ist von https-Seiten aus nicht möglich. Hier muss die zu prüfende Seite händisch auf der Validator-Seite eingeben werden.

last modified
16.02.2024

Ihr Browser unterstützt kein CSS. Das für die Darstellung dieser Webseiten intendierte Seitenlayout wird deshalb nicht angewandt / angezeigt. Ist dies nicht Ihre Absicht, so haben Sie wahrscheinlich in Ihrem Browser den Autorenmodus deaktiviert. Dennoch sind diese Seiten les- und navigierbar.
Texte der Infoboxen werden inline ausgegeben.
Bitte erlauben Sie den Autorenmodus oder verwenden Sie einen CSS-fähigen Browser, wenn Sie diese Seiten so anschauen möchten, wie sie vom Autor gestaltet wurden.

Tipps und Tricks

von Michael Luthardtauthor: Michael Luthardt

Creation Date von Dateien und Ordnern anzeigen

Der erstmalige Erstellungszeitpunkt einer Datei, Creation Date, abgekürzt crtime, mitunter birth oder Geburt genannt, wird zumindest in dem unter Linux benutzten Dateisystem Ext41 gespeichert. Leider geben weder die Coreutils ls oder stat oder Gnome Nautilus diese Zeit aus, auch nicht mit aktuellen GNU core utilities. Mit Ext4 und aktuellen Coreutils sollte stat -c%w filespec die crtime anzeigen. Leider scheint es dort noch einen Bug zu geben; die crtime wird stets als nicht vorhanden angezeigt ("-").

Achtung Wir sprechen zwar von Zeitstempeln der Dateien, in Wirklichkeit sind es aber in den -nix-Dateisystemen Zeitstempel der Inodes. Die crtime ist die "Geburt" des Inodes im aktuellen Dateisystem und nicht der Datei, analoges gilt für die ctime. Demzufolge kann auch copy -p … beim Kopieren auf ein neues Dateisysten (Partition) nur atime und mtime auf den neu angelegten Inode übertragen. In solchen Fällen kann die mtime vor der crtime liegen.

Ausgeben läßt sich die crtime in Ext4-Dateisystemen mit dem Befehl stat des Dateisystems debugfs:
debugfs -R "stat filespec" device. Der Pfad für filespec bezieht sich auf den zu device gehörenden mountpoint. Der Befehl muss als root ausgeführt werden.

foo@bar:~$ date; touch xyz; debugfs -R "stat foo/xyz" /dev/sda5
Sa 25. Aug 19:38:12 CEST 2012
debugfs 1.41.14 (22-Dec-2010)
Inode: 10755723 Type: regular Mode: 0644 Flags: 0x80000
Generation: 965722125 Version: 0x00000000:00000001
User: 1000 Group: 1000 Size: 0
File ACL: 0 Directory ACL: 0
Links: 1 Blockcount: 0
Fragment: Address: 0 Number: 0 Size: 0
ctime: 0x50390d84:d5789ddc -- Sat Aug 25 19:38:12 2012
atime: 0x50390d84:d5789ddc -- Sat Aug 25 19:38:12 2012
mtime: 0x50390d84:d5789ddc -- Sat Aug 25 19:38:12 2012
crtime: 0x50390d84:d5789ddc -- Sat Aug 25 19:38:12 2012
Size of extra inode fields: 28
EXTENTS:
foo@bar:~$

Den Mountpoint findet man am einfachsten mit df file. Im Beispiel bezieht er sich auf /home. Um Dateinamen mit Leerzeichen an stat in debugfs zu übergeben ist es besser, statt einer Pfadangabe die Inode-Nummer zu verwenden. Zu weiteren Informationen über debugfs schauen Sie bitte in die man-page.
Ihr Browser kann das Objekt leider nicht anzeigen!

Einfacher ist es, sich einen crtime-Befehl zu schreiben, z. B. in /usr/local/bin abzulegen und dem Befehl debugfs weiter Superuser-Rechte zu geben.

Um den Befehl im weiter Nautilus-Kontextmenü zur Hand zu haben, muss das Skript um eine Zenity-Ausgabe erweitert werden.

Als Ausgaben erhät man mit crtime:

foo@bar:~$ date; touch xyz; crtime xyz
Sa 25. Aug 20:53:51 CEST 2012
Sat Aug 25 20:53:51 2012    xyz (reguläre leere Datei)

foo@bar:~$ date; touch xyz; crtime xyz
Sa 25. Aug 20:54:09 CEST 2012
Sat Aug 25 20:53:51 2012    xyz (reguläre leere Datei)

foo@bar:~$ crtime xyz 1.png y Eicar
Sat Aug 25 20:53:51 2012    xyz (reguläre leere Datei)
Wed Apr 25 20:19:00 2012    1.png (reguläre Datei)
                            y (file not found)
Wed Feb  1 07:45:50 2012    Eicar (Verzeichnis)

foo@bar:~$

Diese Listen lassen sich mit crtime * | sort -k5,5 -k2,2M -k3,3n -k4,4 nach dem "Geburtsdatum" sortieren.

Achtung Die Creation Time wird von Programmen wie Editoren &c. nicht respektiert, da die Dateien nach einer Änderung neu geschrieben werden. Eine Möglichkeit, Dateien unter Linux dennoch dauerhaft das Geburtsdatum mitzugeben ist, dieses händisch in einem "extended attribute" zu speichern. Dazu müssen im Kernel diese Attribute aktiviert sein, was so gut wie immer der Fall ist.
Zweckmäßig legt man die Datei zuerst als leere Datei an, setzt das Attribut und bearbeitet sie anschließend. Die folgende Funktion, zum Beispiel in der bash gespeichert, erledigt dies:
function cr() { touch $1; setfattr -n user.date -v $(date -I) $1; }, der Aufruf ist dann cr NeueDatei[.txt|.odt|.whatsoever].
Achtung Mit date -I wird nur das Datum gespeichert. Will man auch die Zeit festhalten, ist $(date -I) entsprechend zu ändern. Sichtbar wird das Attribut mit getfattr -n user.date -d Datei.

           
1 ext3-Dateisysteme lassen sich als ext4 mounten. Selbst wenn also in der fstab ext4 angegeben ist, gibt es keine crtime, falls es originär ein ext3-System ist.

25.08.2012/05.09.2022

 nach oben

Änderungen dieser Seite verfolgen:

it's private by ChangeDetection