硬链接文件的元数据(日期)是共享的还是唯一的? Inode 和链接文件!

硬链接文件的元数据(日期)是共享的还是唯一的? Inode 和链接文件!

我一直认为即使使用硬链接,每个 inode 中的日期也是单独维护的。

但是,如果我更改(触摸/拍打)硬链接文件的日期,则指向同一文件的所有其他硬链接都会显示相同的日期更改!

$ ln test.sh testlink.sh
$ slap test.sh
crtime : 5e7d6a29 - Fri 2020-03-27 10:51:21
mtime  : 5e7d6a29 - Fri 2020-03-27 10:51:21
atime  : 5e815c32 - Mon 2020-03-30 10:40:50
ctime  : 5e815c31 - Mon 2020-03-30 10:40:49
$ slap testlink.sh
crtime : 5e7d6a29 - Fri 2020-03-27 10:51:21
mtime  : 5e7d6a29 - Fri 2020-03-27 10:51:21
atime  : 5e815c32 - Mon 2020-03-30 10:40:50
ctime  : 5e815c31 - Mon 2020-03-30 10:40:49
$ slap test.sh -C 2005-02-13T08:47:43+00:00
$ slap test.sh
crtime : 420ea3af - Sun 2005-02-13 08:47:43
mtime  : 5e7d6a29 - Fri 2020-03-27 10:51:21
atime  : 5e815c32 - Mon 2020-03-30 10:40:50
ctime  : 5e815c31 - Mon 2020-03-30 10:40:49
$ slap testlink.sh
crtime : 420ea3af - Sun 2005-02-13 08:47:43
mtime  : 5e7d6a29 - Fri 2020-03-27 10:51:21
atime  : 5e815c32 - Mon 2020-03-30 10:40:50
ctime  : 5e815c31 - Mon 2020-03-30 10:40:49

(slap 是我编写的一个实用程序,用于更改 inode 中的文件日期元数据,包括 crtime。)

有谁对 EXT2/3/4 文件系统有更好的了解,可以发表评论吗?

那么,如果 inode 不唯一,文件名存储在哪里?是否有一个更高级别的结构包含指向存储日期的 inode 的文件名?

答案1

硬链接为 inode 提供一个或多个替代路径。根据man 2 link,原始路径和新链接的路径之间没有区别。

由于它们共享相同的 inode,因此所有元数据都在它们之间共享。

相关内容