คำตอบของ echox นั้นถูกต้อง แต่ฉันต้องการเพิ่มข้อมูลเกี่ยวกับเวลาในการสร้างไฟล์
รองรับระบบไฟล์
บางระบบไฟล์สนับสนุนรายการเพิ่มเติมใน inode เกี่ยวกับเวลาการสร้าง (หรือเวลาเกิด) ฉันรู้ว่าext4 สนับสนุนคุณสมบัตินี้และยังJFS และ BTRFS
อย่างไรก็ตามเครื่องมือและ API ส่วนใหญ่ยังไม่ได้รับการอัปเดตเพื่ออ่านข้อมูลเพิ่มเติมนี้ ดังนั้นแม้ว่ามันจะอยู่ที่นั่น แต่ก็ไม่สามารถเข้าถึงได้
เช่นใน Ubuntu 12.04 LTS ฉันได้รับสิ่งต่อไปนี้สำหรับไฟล์ที่ฉันสร้างในวันนี้:
$ 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
[...]
คุณสามารถเห็นได้ว่าฟังก์ชั่น stat ที่ใหม่กว่ามีฟิลด์เกิดแม้ว่าเอาต์พุตดูเหมือนจะไม่ถูกต้อง และผ่าน debugfs เราสามารถรับข้อมูล (crtime ขณะที่ฉันอยู่ในระบบไฟล์ ext4)
สนับสนุน statx
ขณะนี้มีตั้งแต่เคอร์เนล 4.11 การเรียกระบบ statx ใหม่นอกเหนือจากการสนับสนุนที่ดีขึ้นของ Y2038 หรือระบบไฟล์เครือข่ายก็ยังนำคุณสมบัติพิเศษบางอย่างเช่นการbtimeเข้าถึงเวลาหรือวันเกิด (เวลาสร้าง) การสนับสนุนสำหรับ ext4 ควรอยู่ในเคอร์เนลรีลีสเดียวกัน 4.11
มีแพตช์เพื่อเพิ่มการรองรับ syscall ใหม่นี้ในรุ่นเคอร์เนลในภายหลัง: เช่น BTRFS และ F2FS ในเคอร์เนล 4.13, SMB3 ใน 4.14, GFS2 ใน 4.15, NFS ใน 4.16 เป็นต้น
glibc ที่กำลังจะมาถึงจะให้การเรียกใช้ฟังก์ชันเพื่อสืบค้นอินเทอร์เฟซนี้ (ดูข่าว Phoronix เกี่ยวกับการสนับสนุน glibc statx ) ดังนั้นเราสามารถคาดหวังการสนับสนุนคุณลักษณะนี้ในพื้นที่ผู้ใช้ในไม่ช้า