软(符号)链接和硬链接有什么区别?

软(符号)链接和硬链接有什么区别?

我听说你现在可以在 Vista 中也创建软链接。那么,UNIX/Linux/Vista 上的软(符号)链接和硬链接有什么区别?

使用其中一种方式是否有优势?或者它们只是用于两种不同的目的?

答案1

硬链接传统上共享相同的文件系统结构(unixspeak 中的 inode),而软链接是路径名重定向。

  • 硬链接必须在同一个文件系统上,软链接可以跨文件系统。
  • 即使您移动其中任何一个,硬链接文件仍保持链接状态(除非您将其中一个文件移动到另一个文件系统,从而触发复制和删除机制)。如果您移动目标(原始文件),软链接文件就会中断,有时当您移动链接时也会中断(您使用的是绝对路径还是相对路径?它仍然有效吗?)。
  • 硬链接文件是平等的,而原始文件在软链接中是特殊的,删除原始文件会删除数据。数据不会消失,直到全部硬链接已被删除。
  • 软链接可以指向任何.目标,但大多数操作系统/文件系统不允许硬链接目录,以防止文件系统图中的循环(unix 目录中的和条目除外,..它们是硬链接)。
  • 软链接可能需要文件系统遍历工具的特殊支持。阅读阅读链接 (2)

(一些细节让我回想起mat1t。 谢谢。)

答案2

摘要:符号/短链接充当第一个文件位置的快捷方式,而硬链接是磁盘上文件的快捷方式。

如果您删除软链接的目标,则软链接将停止工作,但如果您删除硬链接的一个副本,则文件将保留在磁盘上,直到删除指向它的所有硬链接为止。实际上,所有文件名都是指向磁盘上文件的硬链接。

还有一些限制,例如,我认为您不能创建文件夹的硬链接,但可以创建文件夹的软链接。软链接还可以指向不同驱动器和分区上的文件/文件夹,而硬链接则不能。

答案3

MS Windows 系统始终使用软链接(快捷方式)。也就是说,链接只是作为指向文件位置的快捷方式。如果原始位置被移动,链接就会断开。此外,您对快捷方式所做的操作(例如更改权限或更改快捷方式的名称)不会影响实际文件。

所以这个问题的开始是错误的假设。是的,Vista 使用软链接,但这并不是什么新鲜事,MS 快捷方式就是这样的。

相关内容