为什么符号链接可以在不同的文件系统之间使用,而硬链接却不能?

为什么符号链接可以在不同的文件系统之间使用,而硬链接却不能?

符号链接如何用于跨不同文件系统进行链接?为什么是硬链接?不能可以在不同的文件系统中使用吗?

答案1

基本上,符号链接本身就是一个文件,其中包含它所链接到的文件的路径。属性中设置了一个特殊位,使操作系统将符号链接视为链接 - 它读取文件中的路径,然后按照路径找到链接的文件。所有这些对用户来说都是透明的。

因为符号链接只是一个由操作系统解释的文件,所以它可以指向任何文件系统上的文件或目录,即使目标文件系统本身不支持创建符号链接。

另一方面,硬链接的工作级别较低。硬链接和文件本质上是同一件事 - 文件系统目录中的条目,由文件名和其 inode 编号组成。inode 就像一张地图,描述了文件的不同部分在硬盘上的哪个位置。

当您创建指向现有文件的硬链接时,您将在文件系统的目录中创建一个新条目,该条目指向与现有文件相同的 inode。因此,硬链接必须与现有文件位于同一文件系统上。

这是一篇好文章这解释了其中的差异。

答案2

硬链接是文件分配表中指向与原始文件相同的盘片、扇区和块的条目。创建硬链接后...您可以删除原始文件名,而不会删除该文件。因为这是文件分配表中指向文件物理位置的实际条目,所以不可能让它指向另一个磁盘。

符号链接是一种特殊的文件,可以理解为指向另一个文件名的指针。如果目标文件被删除……符号链接仍然存在,但另一端不再有目标。考虑到这一点,因为它只引用文件名……您可以指向任何东西。甚至是其他文件系统。

相关内容