最近我在一次工作面试中被问到这个问题。老实说,我知道符号链接的行为方式以及如何创建符号链接,但不了解硬链接的使用以及它与符号链接的区别。
在文件系统之下,文件由 inode 表示。(或者是多个inode?不确定。)
文件系统中的文件基本上是指向 inode 的链接。 那么,硬链接只会创建另一个文件,其中包含指向同一底层 inode 的链接。
当您删除一个文件时,它会删除一个指向底层 inode 的链接。仅当所有指向该 inode 的链接都已删除时,该 inode 才会被删除(或可删除/可覆盖)。
符号链接是指向文件系统中另一个名称的链接。
建立硬链接后,链接将指向 inode。删除、重命名或移动原始文件不会影响硬链接,因为它链接到底层 inode。对 inode 上数据的任何更改都会反映在引用该 inode 的所有文件中。
注意:硬链接仅在同一文件系统内有效。符号链接可以跨越文件系统,因为它们只是另一个文件的名称。