ระบบไฟล์ใดบน Linux ที่จัดเก็บเวลาสร้าง?


32

มีระบบไฟล์ใด ๆ (ที่รู้จักกันดีและเชื่อถือได้) บน Linux ที่เก็บเวลาการสร้างไฟล์และไดเรกทอรีในตาราง i-node หรือไม่?

หากมีเวลา "เปลี่ยน" ถูกแทนที่ด้วยเวลาสร้างของ i-node ในการเรียก stat หรือไม่?



มีไม่ดูเหมือนจะเป็นวิธีการที่จะได้รับเวลาการสร้างแฟ้มในลินุกซ์หากไฟล์ที่อยู่บนระบบไฟล์ ext4 ดู: unix.stackexchange.com/a/131347/182996
kaartic

คำตอบ:


16

ext4ระบบไฟล์จะเก็บเวลาสร้าง stat -c %W myfileสามารถแสดงให้คุณเห็น


6
ขอบคุณ ในระบบของฉันstat -c %Wคืน 0 (ไม่ทราบเวลาสร้าง) แต่นั่นเป็นคำถามอื่น ...
franziskus

1
แต่ทราบว่าเนื่องจากวิธีการไฟล์จะถูกจัดการโดยหลายโปรแกรมที่คุ้มค่าเวลาที่สร้างอาจไม่เป็นประโยชน์
mattdm

15
@Legate: หากตัวแก้ไขข้อความทำงานโดยการคัดลอกไฟล์ไปยังตำแหน่งชั่วคราวแก้ไขสำเนาการทำงานชั่วคราวแล้วย้ายสำเนาชั่วคราวไปที่ต้นฉบับเมื่อบันทึกเมื่อเวลาสร้างเป็นอย่างไร
mattdm

1
ต้องเปิดใช้งานสิ่งนี้หรือไม่? ฉันพยายามที่จะ crtime สำหรับไฟล์ในระบบไฟล์ ext4 และได้เป็นศูนย์ หลังจากก่อนหน้านี้อ่านบล็อกโพสต์นี้ผมยังพยายามใช้debugfsและซึ่งเผยให้เห็นว่าไม่มีstat crtimeดังนั้นฉันสงสัยว่าจะต้องเปิดใช้งานอย่างใด (FWIW ฉันใช้Arch Linux )
starfry

2
มีไม่ดูเหมือนจะเป็นวิธีการที่จะได้รับเวลาการสร้างแฟ้มในลินุกซ์ ดู: unix.stackexchange.com/a/131347/182996
kaartic

30

ระบบไฟล์หลายระบบจัดเก็บเวลาสร้างไฟล์แม้ว่าจะไม่มีชื่อมาตรฐานสำหรับฟิลด์นี้:

  • ufs2 → st_birthtime
  • zfs → crtime
  • ext4 → crtime
  • btrfs → otime
  • jfs → di_otime

5
จะมีความชัดเจนตั้งแต่ 2015-03, XFS ไม่สนับสนุน (ดูxfs_dbmanpage หรือในโครงสร้างระบบไฟล์ XFS
Franklin Piat

4

เท่าที่ฉันรู้ระบบไฟล์ ext4, JFS และ BTRFS ทั้งหมดสนับสนุนฟิลด์พิเศษในไฟล์ inode เพื่อเก็บเวลาการสร้างแม้ว่าการตั้งชื่ออาจแตกต่างกัน

ที่มา: เวลาสร้างไฟล์ LWN


//, คุณสามารถตรวจสอบสิ่งนี้ได้หรือไม่? AFAIK อ่อนแออย่างน้อยสำหรับรสนิยมของฉันอย่างน้อย
Nathan Basanese

5
@NathanBasanese AFAIK รายงานกับ JFS และ BTRFS แล้ว สำหรับ ext4 ใช่มันรองรับ ตรวจสอบสถานะdebugfsคำสั่ง ตัวอย่าง: คุณต้องทำสิ่งที่อุปกรณ์ที่คุณติดตั้งระบบไฟล์ ext4 (เช่น / dev / sda3) และคุณต้องได้รับหมายเลข inode ของไฟล์ภายในระบบไฟล์นั้น (ใช้ls -iสมมุติว่า 42000 เป็นตัวเลข) จากนั้นคุณก็พิมพ์: debugfs -R 'stat <42000>' /dev/sda3. รันสิ่งนี้ในฐานะรูทหรือมีสิทธิ์เพียงพอ มองหาcrtimeสนามนั่นคือสิ่งนั้น สำหรับ JFS และ BTRFS คุณจะต้องค้นหาคำสั่ง debugfs ที่เทียบเท่ากัน ...
Huygens

//, NIIICE ฉันลอง $ ls -i | grep dump.rdb 656376 dump.rdb และ $ sudo debugfs -R 'stat <656376>' / dev / sda2 แต่ฉันคิดว่าฉันยังไม่มี ext4 อยู่ ถ้าฉันลองมันใน ext4 ฉันจะพูดอย่างนั้น
Nathan Basanese

@NathanBasanese คุณสามารถทำได้เพื่อให้ได้ประเภทพาร์ทิชันหรือเพียงแค่ชนิดdf -T mountตรวจสอบให้แน่ใจว่าไฟล์ inode นั้นอยู่ในพาร์ติชั่นที่ถูกต้อง Inodes คือ (ตามลักษณะ) เฉพาะสำหรับพาร์ติชัน
Huygens
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.