Linux上的哪些文件系统会存储创建时间?


32

Linux上是否有(众所周知的,可靠的)文件系统在i节点表中存储文件和目录的创建时间?

如果存在,是否将“更改的”时间替换为统计调用中i节点的创建时间?



确实似乎是一种方式来获得该文件的创建时间在Linux中,如果该文件是一个ext4文件系统上。参见:unix.stackexchange.com/a/131347/182996
kaartic '18

Answers:


16

EXT4文件系统做存储的创建时间。stat -c %W myfile可以给你看


6
谢谢。在我的系统中stat -c %W返回0(创建时间未知),但这是另一个问题……
franziskus 2011年

1
但请注意,由于许多程序如何处理文件,因此创建时间值可能没有用
mattdm 2011年

15
@Legate:如果文本编辑器通过将文件复制到临时位置,编辑临时工作副本,然后在保存时将临时副本移到原始副本上来工作,那么创建时间是什么时候?
mattdm 2011年

1
是否需要以某种方式启用此功能?我试图在ext4文件系统上获取文件的crtime并得到零。在先前阅读这篇博客文章之后,我也尝试使用debugfsstat发现没有内容crtime。所以我想知道是否需要以某种方式启用它?(FWIW我使用Arch Linux
starfry

2
确实似乎是一种方式来获得在Linux中文件的创建时间。请参阅:unix.stackexchange.com/a/131347/182996
kaartic '18


4

据我所知ext4,JFS和BTRFS文件系统都在文件inode中支持一个额外的字段来存储创建时间,尽管命名可能会有所不同。

资料来源:LWN文件创建时间


//,您是否能够验证?至少就我的口味而言,AFAIK有点虚弱。
弥敦道(Nathan Basanese),2015年

5
@NathanBasanese AFAIK正在向JFS和BTRFS报告。对于ext4,是的,它支持它。查看debugfs命令统计信息。例如:您需要安装ext4文件系统的设备(例如/ dev / sda3),并且需要获取该文件系统中的文件inode编号(使用ls -i,假设42000是该编号),然后只需键入:debugfs -R 'stat <42000>' /dev/sda3。以root身份或具有足够的特权运行此文件。寻找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),2015年

@NathanBasanese您可以df -T获取分区类型,也可以简单地输入mount。确保文件inode属于正确的分区。索引节点(根据其性质)特定于分区。
惠更斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.