UNIX 中的硬链接是如何计算的?

UNIX 中的硬链接是如何计算的?

当我们在 UNIX 中创建目录时,它有 2 个硬链接:....一份为其自身,另一份为其父目录。

当我读取.目录的增加计数器和..父目录的硬链接计数器的增加时。

所以只.计算在目录中,但是当我这样做时仍然有2个硬链接ls -l。第二个是什么?有人可以告诉我目录中的硬链接是如何计算的吗?想象一下,我们有这样的层次结构:

parent    - 4 hard links
.
. child_1 - 2 hard links
.
. child_2 - 2 hard links

答案1

child1由于child1父项中的条目和.中的条目,有两个链接child1

请注意,parent在所描述的星座中通常有链接,而不是 3,因为它是其他父级的子级(除非它是根目录):

$ find parent | xargs stat -c "%h %n"  # %h=link count, %n=name
4 parent
2 parent/child2
2 parent/child1

答案2

好的。这是我问我的讲师的:

.目录本身的计数加 1 。..父目录的计数加 1 。新的子目录有 2 个硬链接,因为目录的名称也是链接到该目录的硬链接。

相关内容