![为什么我的文件有多个 crtime 条目?](https://linux22.com/image/92594/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E7%9A%84%E6%96%87%E4%BB%B6%E6%9C%89%E5%A4%9A%E4%B8%AA%20crtime%20%E6%9D%A1%E7%9B%AE%EF%BC%9F.png)
使用ext4
文件系统,我能够使用以下命令读出文件的创建时间接近这里。因此,我确实获得了一张表格,crtime
其中包含相关索引节点(相应文件)的(创建时间)。
让我困惑并且我无法在 中找到答案的是man debugfs
为什么它向我显示了 2 行crtime
,而且甚至不是同一时间。
这是我得到的输出
[user ~] $ sudo debugfs -R "stat <274742>" /dev/sda2
debugfs 1.43.1 (08-Jun-2016)
Inode: 274742 Type: regular Mode: 0644 Flags: 0x80000
Generation: 3666549610 Version: 0x00000000:00000001
User: 1000 Group: 1000 Project: 0 Size: 0
File ACL: 0 Directory ACL: 0
Links: 0 Blockcount: 0
Fragment: Address: 0 Number: 0 Size: 0
ctime: 0x57b4c632:1e30ee34 -- Wed Aug 17 22:16:50 2016
atime: 0x57b4c4c0:afa082b0 -- Wed Aug 17 22:10:40 2016
mtime: 0x57b4c632:1e30ee34 -- Wed Aug 17 22:16:50 2016
crtime: 0x57b4c4c0:afa082b0 -- Wed Aug 17 22:10:40 2016
crtime: 0x57b4c632:(1e30ee34) -- Wed Aug 17 22:16:50 2016
Size of extra inode fields: 32
另请注意,第二个(并不是真正正确的)crtime
位于括号中并且等于mtime
,因为我显然两次保存到文件中。
答案1
这是 e2fsprogs 补丁中编辑错误的结果debugfs:添加对正确设置和显示扩展时间戳的支持。第二运行时间:线应该是时间:。
if (inode->i_dtime)
fprintf(out, "%scrtime: 0x%08x:(%08x) -- %s", prefix,
large_inode->i_dtime, large_inode->i_ctime_extra,
inode_time_to_string(inode->i_dtime,
large_inode->i_ctime_extra));
我提交了错误报告。