Auf einem Linux-System zeigen die Dateieigenschaften einer Datei im Dateimanager nur Informationen über das Datum des letzten Zugriffs auf die Datei und das Änderungsdatum an. Das Erstellungsdatum wird dort jedoch nicht angezeigt. Manchmal muss man es sich ansehen, um zum Beispiel herauszufinden, wann das Protokoll aufgezeichnet wurde. In dieser Anleitung erklären wir Ihnen, wie Sie sehen können, welche Daten in Linux-Dateisystemen gespeichert sind, und wie Sie das Erstellungsdatum einer Linux-Datei herausfinden können. Es werden gleich zwei bequeme Wege genannt, die jeweils ihre eigenen Besonderheiten haben.
Der POSIX-Standard spezifiziert nur 3 Arten von Zeitstempeln, die ein Dateisystem speichern muss:
Aus diesem Grund ist es in alten Dateisystemen oft unmöglich, Informationen über das Erstellungsdatum einer Datei zu sehen. In modernen Dateisystemen (ext4, zfs, XFS und so weiter) wird es jedoch bereits gespeichert.
Die Daten über das Erstellungsdatum werden in einem speziellen Feld gespeichert:
Es gibt zwei Methoden, diese Informationen einzusehen: stat und debugfs. Die erste Methode ist jedoch nicht für Benutzer jeder Linux-Distribution geeignet. Die zweite Methode ist universell, aber nicht so einfach zu benutzen. Lassen Sie uns jede von ihnen separat behandeln.
Das Dienstprogramm stat zeigt detaillierte Informationen über eine Datei an. Unter anderem zeigt es das Datum an, an dem die Linux-Datei erstellt wurde. Um es im Terminal auszuführen, müssen Sie nur den Pfad zu der Datei angeben. Sehen wir uns zum Beispiel die Informationen über das Bild pic_1.jpeg
an, das im Katalog /home/root-user/Pictures
gespeichert ist:
$ stat /home/root-user/Pictures/pic_1.jpeg
Die erforderlichen Informationen sind in der Spalte Created (Erstellt) aufgeführt. Und mit der Option -c können Sie bestimmte Formatierungsregeln für die Ausgabe der Informationen festlegen, z. B. dass nur die notwendige Spalte ausgegeben wird:
$ stat -c '%w' /home/root-user/Pictures/pic_1.jpeg
Es gibt jedoch eine kleine Schwierigkeit. Bei einigen Linux-Distributionen bleibt dieses Feld leer, wenn Sie das stat-Dienstprogramm verwenden.
Der Hauptgrund dafür ist, dass die Ausgabe in statx(2) angezeigt wird. Die Shell wurde der glibc-Bibliothek in Version 2.28 hinzugefügt. Das heißt, dass die Unterstützung für diese Shell in der GNU coreutils 8.31 Reihe der grundlegenden Systemdienstprogramme erschien. Um die Version zu überprüfen, führen Sie diesen Befehl aus:
$ stat --version
Folglich kann stat
nur dann Daten zur Dateierstellung ausgeben, wenn die oben beschriebenen spezifischen Bedingungen erfüllt sind. In der Ubuntu 21.10-Distribution funktioniert zum Beispiel alles ohne Probleme, aber in Ubuntu 20.04 wird das Feld leer sein.
Das Dienstprogramm DebugFS hat keine Versionsbeschränkungen. Es wird immer funktionieren. Aber die Benutzung ist etwas komplizierter. Um das Erstellungsdatum einer Datei mit debugfs anzuzeigen, müssen Sie die Inode-Nummer und das Dateisystem kennen. Um die Inode zu erhalten, verwenden Sie den Befehl ls
mit der Option -i
und geben den Pfad zur Datei an:
$ ls -i /home/root-user/scripts/main_script.txt
Um das Dateisystem einzusehen, ist der Befehl df
sehr hilfreich:
$ df /home/root-user/scripts/main_script.txt
Jetzt haben Sie alle notwendigen Daten und können mit dem Dienstprogramm debugfs fortfahren. Sie müssen ihm die Option -R
übergeben, die Inode-Nummer
und dann den Namen des Dateisystems angeben:
$ sudo debugfs -R 'stat <28>' /dev/sda5
Danach können Sie im Terminal das Feld finden, in dem das Erstellungsdatum gespeichert ist. In unserem Fall ist es crtime.
Damit sind die Anweisungen abgeschlossen.