Ich möchte das Erstellungsdatum einer bestimmten Datei herausfinden, nicht das Änderungsdatum oder das Zugriffsdatum.
Ich habe es mit ls -ltrh
versucht und stat filename
.
Akzeptierte Antwort:
stat -c '%w' file
auf Dateisystemen, die die Erstellungszeit speichern.
Beachten Sie, dass dies unter Linux coreutils
erfordert 8.31, glibc
2.28 und Kernel-Version 4.11 oder neuer.
Der POSIX-Standard definiert nur drei unterschiedliche Zeitstempel, die für jede Datei gespeichert werden sollen:die Zeit des letzten Datenzugriffs, die Zeit der letzten Datenänderung und die Zeit, zu der sich der Dateistatus zuletzt geändert hat.
Moderne Linux-Dateisysteme wie ext4, Btrfs, XFS (v5 und höher) und JFS speichern zwar die Dateierstellungszeit (auch bekannt als Geburtszeit), verwenden jedoch andere Namen für das betreffende Feld (crtime
in ext4/XFS, otime
in Btrfs und JFS). Linux bietet die statx(2)-Systemaufrufschnittstelle zum Abrufen der Dateigeburtszeit für Dateisysteme, die dies seit Kernel-Version 4.11 unterstützen. (Sogar wenn einem Dateisystem Unterstützung zur Erstellungszeit hinzugefügt wurde, haben einige bereitgestellte Kernel dies nicht sofort unterstützt, selbst nachdem nominelle Unterstützung für diese Dateisystemversion hinzugefügt wurde, z. B. XFS v5.)
Wie Craig Sanders und Mohsen Pahlevanzadeh betonten, stat
unterstützt den %w
und %W
Formatspezifizierer zum Anzeigen der Geburtszeit der Datei (in menschenlesbarem Format bzw. in Sekunden seit Epoche) vor coreutils
Version 8.31. Jedoch coreutils
stat
verwendet die statx()
Systemaufruf, wo verfügbar, um die Geburtszeit nur seit Version 8.31 abzurufen.
Vor coreutils
Version 8.31 stat
Zugriff auf die Geburtszeit über get_stat_birthtime()
bereitgestellt von gnulib (in lib/stat-time.h
), die die Geburtszeit aus st_birthtime
erhält und st_birthtimensec
Felder der stat
Struktur, die von stat()
zurückgegeben wird Systemaufruf. Während zum Beispiel BSD-Systeme (und in Erweiterung OS X) st_birthtime
bereitstellen über stat
, Linux nicht. Aus diesem Grund stat -c '%w' file
gibt -
aus (zeigt eine unbekannte Erstellungszeit an) unter Linux vor coreutils
8.31 sogar für Dateisysteme, die die Erstellungszeit intern speichern.
Wie Stephane Chazelas betont, legen einige Dateisysteme, wie etwa ntfs-3g, die Dateierstellungszeiten über erweiterte Dateiattribute offen.