我了解符号链接和硬链接之间的区别,但我不明白为什么选择其中一个。
答案1
这有已经详细讨论过在 ServerFault 上。
硬链接传统上共享相同的文件系统结构(unixspeak 中的 inode),而软链接是路径名重定向。
- 硬链接必须在同一个文件系统上,软链接可以跨文件系统。
- 即使您移动其中任何一个,硬链接文件仍保持链接状态(除非您将其中一个文件移动到另一个文件系统,从而触发复制和删除机制)。如果您移动目标(原始文件),软链接文件就会中断,有时当您移动链接时也会中断(您使用的是绝对路径还是相对路径?它仍然有效吗?)。
- 硬链接文件是平等的,而原始文件在软链接中是特殊的,删除原始文件会删除数据。数据不会消失,直到全部硬链接已被删除。
- 软链接可以指向任何
.
目标,但大多数操作系统/文件系统不允许硬链接目录,以防止文件系统图中的循环(unix 目录中的和条目除外,..
它们是硬链接)。 - 软链接可能需要文件系统遍历工具的特殊支持。阅读阅读链接 (2)。
(一些细节让我回想起mat1t。 谢谢。)
答案2
Ronald 写道,硬链接在两个地方可以具有不同的权限。这是不对的。两个地方共享相同的 inode。权限与 inode 绑定,而不是文件名。因此,两个地方的硬链接具有完全相同的权限、访问时间……
答案3
符号链接可以跨文件系统,硬链接则不行。如果您删除原始文件,硬链接仍会使其保持活动状态,而符号链接则不会。
答案4
硬链接本质上意味着文件位于两个地方,它可以具有不同的权限,您可以在一个地方删除它,但不能在另一个地方删除它。
软链接只是指向真实事物的指针。
硬链接是两个(或多个)目录项指向同一个文件。软链接是一个目录项指向另一个目录项。