同一服务器上的两个“不同”文件是否可能具有相同的索引节点?在问题的文本中声明“不同”,因此请不要遵循快捷方式和链接
答案1
索引节点对于它们所在的设备(“分区”)来说是唯一的。
在一个分区中,可以有两个不同的分区文件名指向相同的inode,并且它们将具有相同的相同内容。因为它是同一个文件,但有两个不同的名称。这称为“硬链接”
例如
% echo hello > a
% ln a b
% ls -li a b
2853867 -rw-r--r-- 2 sweh sweh 6 Jul 25 20:20 a
2853867 -rw-r--r-- 2 sweh sweh 6 Jul 25 20:20 b
% cat a
hello
% cat b
hello
我们可以看到“a”和“b”具有相同的inode并且具有相同的内容。
现在,如果您有不同的分区,则可能有具有相同索引节点号的不同文件。那是因为设备是不同的。
在我的机器上/news
是从不同的分区安装的,我们可以看到它具有与/
% ls -lid / /news
2 dr-xr-xr-x 27 root root 4096 Jun 10 2019 //
2 drwxr-xr-x 13 root root 2048 Jul 25 20:12 /news/
stat
我们可以看到使用显示“Device”值的命令有所不同
% stat / /news
File: '/'
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: fd03h/64771d Inode: 2 Links: 27
Access: (0555/dr-xr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2021-07-25 06:49:19.766594125 -0400
Modify: 2019-06-10 13:24:11.299255125 -0400
Change: 2019-06-10 13:24:11.299255125 -0400
Birth: -
File: '/news'
Size: 2048 Blocks: 4 IO Block: 2048 directory
Device: fd10h/64784d Inode: 2 Links: 13
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2021-07-25 20:12:34.000000000 -0400
Modify: 2021-07-25 20:12:32.000000000 -0400
Change: 2021-07-25 20:12:32.000000000 -0400
Birth: -