GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie bekomme ich Datum/Uhrzeit der Dateierstellung in Bash/Debian?

Leider wird Ihre Suche im Allgemeinen nicht möglich sein, da für jede Ihrer Dateien nur 3 verschiedene Zeitwerte gespeichert sind, wie vom POSIX-Standard definiert (siehe Basisdefinitionen Abschnitt 4.8 Dateizeitaktualisierung)

Jede Datei hat drei eindeutig zugeordnete Zeitstempel:die Zeit des letzten Datenzugriffs, die Zeit der letzten Datenmodifikation und die Zeit, zu der sich der Dateistatus zuletzt geändert hat. Diese Werte werden in der Dateimerkmalsstruktur struct stat zurückgegeben , wie in beschrieben.

BEARBEITEN:Wie in den Kommentaren unten erwähnt, können Metadaten je nach verwendetem Dateisystem das Erstellungsdatum der Datei enthalten. Beachten Sie jedoch, dass die Speicherung solcher Informationen nicht dem Standard entspricht. Abhängig davon kann es zu Portabilitätsproblemen beim Wechsel auf ein anderes Dateisystem kommen, falls das tatsächlich verwendete es irgendwie speichert.


Mikyras Antwort ist gut. Die Tatsache ist genau wie das, was er gesagt hat.

[[email protected] test]$ stat test.txt
  File: `test.txt'
  Size: 0               Blocks: 8          IO Block: 4096   regular empty file
Device: 802h/2050d      Inode: 588720      Links: 1
Access: (0664/-rw-rw-r--)  Uid: (  500/   jason)   Gid: (  500/   jason)
Access: 2013-03-14 01:58:12.000000000 -0700
Modify: 2013-03-14 01:58:12.000000000 -0700
Change: 2013-03-14 01:58:12.000000000 -0700

Wenn Sie überprüfen möchten, welche Datei zuerst erstellt wurde, können Sie Ihren Dateinamen strukturieren, indem Sie beim Erstellen einer Reihe von Dateien das Systemdatum anhängen.


Beachten Sie, dass, wenn Sie Ihr Dateisystem aus Leistungsgründen mit noatime gemountet haben, die atime wahrscheinlich die Erstellungszeit anzeigt. Angesichts der Tatsache, dass noatime zu einer massiven Leistungssteigerung führt (indem ein Festplattenschreibvorgang für jedes Mal, wenn eine Datei gelesen wird, entfernt wird), kann dies eine sinnvolle Konfigurationsoption sein, die Ihnen auch die gewünschten Ergebnisse liefert.


ls -i file #output is for me 68551981
debugfs -R 'stat <68551981>' /dev/sda3 # /dev/sda3 is the disk on which the file exists

#results - crtime value
[[email protected] ~]# debugfs -R 'stat <68551981>' /dev/sda3
debugfs 1.41.12 (17-May-2010)
Inode: 68551981   Type: regular    Mode:  0644   Flags: 0x80000
Generation: 769802755    Version: 0x00000000:00000001
User:     0   Group:     0   Size: 38973440
File ACL: 0    Directory ACL: 0
Links: 1   Blockcount: 76128
Fragment:  Address: 0    Number: 0    Size: 0
 ctime: 0x526931d7:1697cce0 -- Thu Oct 24 16:42:31 2013
 atime: 0x52691f4d:7694eda4 -- Thu Oct 24 15:23:25 2013
 mtime: 0x526931d7:1697cce0 -- Thu Oct 24 16:42:31 2013
**crtime: 0x52691f4d:7694eda4 -- Thu Oct 24 15:23:25 2013**
Size of extra inode fields: 28
EXTENTS:
(0-511): 352633728-352634239, (512-1023): 352634368-352634879, (1024-2047): 288392192-288393215, (2048-4095): 355803136-355805183, (4096-6143): 357941248-357943295, (6144
-9514): 357961728-357965098

Linux
  1. Alter der gegebenen Datei abrufen?

  2. Holen Sie sich die erstellte Datei/Erstellungszeit??

  3. Erstellungsdatum der Datei ändern

  4. Holen Sie sich die Dateierstellungszeit mit Python unter Linux

  5. Wie parse ich eine CSV-Datei in Bash?

So lesen Sie Dateien Zeile für Zeile in Bash

So installieren Sie Go unter Debian 9

So lesen Sie eine Datei Zeile für Zeile in Bash

So leiten Sie stderr in Bash auf stdout um

So erhalten Sie das aktuelle Datum und die Uhrzeit in JavaScript

So ändern Sie Datum, Uhrzeit und Zeitzone in Debian 10