Es gibt 3 Arten von "Zeitstempeln":
- Zugriff - wann die Datei zuletzt gelesen wurde
- Modify - das letzte Mal, als die Datei geändert wurde (der Inhalt wurde geändert)
- Änderung – Zeitpunkt der letzten Änderung der Metadaten der Datei (z. B. Berechtigungen)
Um diese Informationen anzuzeigen, können Sie stat
verwenden das Teil der Coreutils ist.
stat
zeigt Ihnen auch einige weitere Informationen wie das Gerät, Inodes, Links usw.
Denken Sie daran, dass diese Art von Informationen stark vom Dateisystem und den Mount-Optionen abhängt. Zum Beispiel, wenn Sie eine Partition mit dem noatime
mounten Option werden keine Zugangsinformationen geschrieben.
Ein Dienstprogramm zum Ändern der Zeitstempel wäre touch
.Es gibt einige Argumente, um zu entscheiden, welcher Zeitstempel geändert werden soll (z. B. -a für Zugriffszeit, -m für Änderungszeit) und um das Parsen eines neuen gegebenen Zeitstempels zu beeinflussen. Siehe man touch
für weitere Details.
touch
kann in Kombination mit cp -u
praktisch werden ("Nur kopieren, wenn die SOURCE-Datei neuer ist als die Zieldatei oder wenn die Zieldatei fehlt" ) oder zum Erstellen leerer Markerdateien.
Die Antwort von Echox ist gültig, aber ich möchte Informationen zur Dateierstellungszeit hinzufügen.
Dateisystemunterstützung
Einige Dateisysteme unterstützen einen zusätzlichen Eintrag im Inode bezüglich der Erstellungszeit (oder Geburtszeit). Ich weiß, dass ext4 diese Funktion unterstützt und auch JFS und BTRFS.
Die meisten Tools und APIs wurden jedoch noch nicht aktualisiert, um diese zusätzlichen Informationen zu lesen. Obwohl es dort sein könnte, ist es also nicht zugänglich.
Unter Ubuntu 12.04 LTS erhalte ich beispielsweise Folgendes für eine Datei, die ich heute erstellt habe:
$ echo Just another test > /tmp/mytest
$ sleep 3
$ touch /tmp/mytest
$ sleep 2
$ cat /tmp/mytest > /dev/null
$ stat /tmp/mytest
[...]
Access: 2012-06-05 13:33:44.279774711 +0200
Modify: 2012-06-05 13:33:34.611893317 +0200
Change: 2012-06-05 13:33:34.611893317 +0200
Birth: -
$ sudo debugfs -R 'stat /tmp/mytest' /dev/sda1
[...]
ctime: 0x4fcdee8e:91e30114 -- Tue Jun 5 13:33:34 2012
atime: 0x4fcdee98:42b417dc -- Tue Jun 5 13:33:44 2012
mtime: 0x4fcdee8e:91e30114 -- Tue Jun 5 13:33:34 2012
crtime: 0x4fcdee46:01258f1c -- Tue Jun 5 13:32:22 2012
[...]
Sie können sehen, dass die neuere Statistikfunktion ein Geburtsfeld hat, obwohl die Ausgabe falsch zu sein scheint. Und über debugfs können wir die Informationen abrufen (crtime, da ich mich im ext4-Dateisystem befinde).
statx-Unterstützung
Seit Kernel 4.11 gibt es nun einen neuen statx-Systemaufruf, der neben besserer Unterstützung von Y2038 oder Netzwerkdateisystemen auch ein paar zusätzliche Features wie den btime
bringt oder Geburtszeit (Erstellungszeit) zugreifen. Unterstützung für ext4 sollte in derselben Kernel-Version 4.11 enthalten sein.
Es gab Patches, um diesen neuen Systemaufruf in späteren Kernel-Versionen zu unterstützen:z. BTRFS und F2FS in Kernel 4.13, SMB3 in 4.14, GFS2 in 4.15, NFS in 4.16 usw.
Die kommende glibc wird einen Funktionsaufruf bereitstellen, um diese Schnittstelle abzufragen (siehe Phoronix-News über glibc statx-Unterstützung). Wir können also ziemlich bald mit Unterstützung für dieses Feature im Userspace rechnen.