/var/mail/root 和 /var/spool/mail/root 是否为同一个 inode 的硬链接?

/var/mail/root 和 /var/spool/mail/root 是否为同一个 inode 的硬链接?

刚刚发现这一点:

# diff /var/mail/root /var/spool/mail/root
# (nothing)
# ls -i /var/mail/root /var/spool/mail/root
1284 /var/mail/root  1284 /var/spool/mail/root

相同的内容,相同的 1284 inode 编号,因此它们是同一个文件的两个硬链接,对吗?

但:

# ls -l /var/mail/root /var/spool/mail/root
-rw------- 1 root mail 63743972 Nov 14 16:40 /var/mail/root
-rw------- 1 root mail 63743972 Nov 14 16:40 /var/spool/mail/root
...........^

引用计数是 1,而不是我期望的 2!

和:

# find /var -inum 1284
/var/mail/root

也就是说,/var/mail/root 是指向 inode 1284 的唯一链接。

# find /var -samefile /var/mail/root
/var/mail/root
# find /var -samefile /var/spool/mail/root
/var/mail/root

/var/spool/mail/root 似乎在那里,但实际上并不在那里。

答案1

哇,你在那里做了相当多的研究,不是吗?:D

但答案要简单得多。是的,两个条目都指向同一个 inode。这是因为它们是完全相同的文件。甚至不是硬链接。在大多数现代系统上,/var/spool/mail 是指向 /var/mail 的符号链接。

相关内容