硬链接会破坏文件系统结构吗?

硬链接会破坏文件系统结构吗?

我想要一个非常简单的例子来说明硬链接如何破坏文件系统结构。

我在某个地方看到人们说这是因为循环,但是,我可以用软链接创建一个循环,所以我仍然想知道是什么导致硬链接破坏文件系统?

答案1

它是指向可能破坏文件系统结构的目录的硬链接。到其他类型文件的硬链接不是问题。例如:

mkdir foo
ln foo foo/self
rmdir foo

rmdir foo实际上并没有删除该目录,因为它还有一个剩余的链接 -其self内部的条目foofoo已与文件系统分离;它再也无法到达,但它仍然存在。禁止目录的硬链接可以防止此问题。有些垃圾收集文件系统会自动回收分离的目录树,但它们从未真正被回收(这是一项重大工作,几乎没有任何好处)。

另一个问题是遍历目录树的工具。如果允许到目录的硬链接,那么这些工具将必须记住所有以前见过的目录并跳过它们,否则当遇到作为其自身子目录(或其子目录等)的目录时,它们将永远循环。 )。

带有符号链接的循环不是问题。如果符号链接的目标被删除,则符号链接的存在并不重要。在递归遍历中,不遵循符号链接(除非明确请求)。

相关内容