刚刚发现这一点:
# 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 的符号链接。