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

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

使用另一个的优点是什么? 或者他们只是为了两个不同的目的?

    硬链接传统上共享相同的文件系统结构(unixspeak中的inode),而软链接是path名redirect。

    • 硬链接必须在同一个文件系统上,软链接可以跨越文件系统。
    • 即使移动其中的任何一个,硬链接文件也会保持链接(除非将一个文件系统移动到另一个触发复制和删除机制的文件系统)。 如果您移动目标(原始),并且有时在移动链接时,Softlinked文件会中断(您是使用绝对path还是相对path?是否仍然有效?)。
    • 硬连接的文件是相等的,而原始文件是软链接中的特殊文件,删除原文会删除数据。 数据不会消失,直到所有的硬链接被删除。
    • 软链接可以指向任何目标,但是大多数OS /文件系统不允许硬链接目录来防止文件系统图中的循环(除了作为硬链接的unix目录中的...条目之外)。
    • 软链接可能需要文件系统步行工具的特殊支持。 阅读readlink(2) 。

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

    总结是符号/短链接作为第一个文件位置的快捷方式,而硬链接是磁盘上文件的快捷方式。

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

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

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

    所以这个问题开始于一个不正确的假设。 是的,Vista使用软链接,但它不是新的,这是一个MS快捷方式。