【问题标题】:Why is number of hard links for a directory 2 + the number of subdirectories? [closed]为什么目录的硬链接数为 2 + 子目录的数量? [关闭]
【发布时间】:2021-08-31 16:51:02
【问题描述】:

在使用ls -l 时,我注意到目录以 2 个硬链接开头,每个子目录增加一个。我知道当前目录链接.算一个链接,每个子目录的父目录链接..算一个硬链接,但是:

  1. 为什么子文件不计入硬链接而子目录计入硬链接?

  2. 为什么父目录链接.. 算作此目录父目录的硬链接?

【问题讨论】:

  • 这篇文章有点令人困惑,因为您不能硬链接目录,只能硬链接文件。 ... 不是硬链接。
  • “为什么”问题不在此处讨论。这个问题的答案不会改善你练习软件开发的方式;这只是历史琐事。考虑Unix & Linux

标签: bash unix command-line hardlink


【解决方案1】:

假设如下目录树

/a
  /b
    /c
    /d

那么目录b在路径/a/b有4个硬链接。链接如下:

  • b(来自父目录)
  • .(来自目录本身)
  • c/..
  • d/..

文件不计入目录的链接计数,因为文件没有嵌套的.. 目录,因此不要指向该目录。

我们可以计算出上面显示的每个目录的硬链接数:

  • 一个:3
    • a(来自/
    • .
    • b/..
  • c: 2
    • c(来自 b)
    • .
  • d: 2
    • d(来自 b)
    • .

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-07
    • 2016-12-31
    • 2012-05-18
    • 1970-01-01
    • 2012-03-13
    • 1970-01-01
    相关资源
    最近更新 更多