【linux】“软链接”和“硬链接”的区别

啊,软链接和硬链接……这个我得具体说一下。

假设2 02 2 年,我在上海的时候,遇到了这个问题。
当时我在服务器上管理文件,数量还蛮大的,所以得节省一些空间。

我们先来说说硬链接。
硬链接,你可以这样理解,就是同一个文件的多个名称。
它们共享相同的 inode,即该文件在文件系统中的 ID 号。
例如,您有一个名为 myfile.txt、大小为 1 KB 的文件。
它占用硬盘上的空间,假设块号为1 2 3 然后您创建一个名为hardlink.txt的硬链接。
myfile.txt和hardlink.txt这两个文件具有相同的inode号,并且都指向块号1 2 3 您是否删除了myfile.txt?没问题,只要hardlink.txt还存在,这1 KB数据就不会被系统回收。
他们就像兄弟一样。
如果你死了,我就不能活,如果我死了,你也不能活,除非两者都被移除。
硬链接无法扩展文件系统。
例如,如果您在一个分区中创建一个文件,然后想在该分区之外的另一个分区中创建指向该文件的硬链接,则这是行不通的。
它不能指向目录以防止无限循环。

就软链接而言,软链接有点像 Windows 中的快捷方式。
例如,您有一个文件 target.txt,它是一个视频,大小为 1 00MB。
您创建一个名为 Softlink.txt 的软链接。
这个Softlink.txt有自己的inode,它并不直接指向视频文件的内容,而是指向target.txt的路径。
确实如此,例如/path/to/target.txt。
该路径必须有效,否则打开Softlink.txt时系统会提示“文件未找到”。
如果删除target.txt并重新打开Softlink.txt,它将变得毫无用处,你将成为孤独的幽灵。
软链接可以跨越文件系统。
您可以在分区 A 中创建指向分区 B 中的文件的软链接。
软链接也可以指向目录。

让我举个例子。
也许2 02 2 年我犯了一个错误,把软链接当成了硬链接。
结果删除原文件后,软链接就消失了。
我以为硬链接也消失了,但事实并非如此。
硬链接仍然存在,数据仍然存在。
这让我头晕目眩。
后来才知道,软链接是路径,硬链接是对数据的直接引用。

所以,硬链接和软链接有不同的用途。
硬链接共享数据并节省空间。
删除其中一个不会对另一个产生影响(只要其中一个存在)。
软链接是路径,可以跨越文件系统,但如果指向的文件消失了,它就变得毫无用处。

仅此而已。

linux硬链接和软链接的区别

硬链接共享inode,软链接存储路径。

硬链接不能跨分区,但软链接可以。

目录可能不是硬链接,但可以是软链接。

硬链接ln,软链接lns。

删除硬链接,但直到链接数达到0时才会删除文件。

软内容指向已删除的文件和未断开的链接。

硬链接必须在同一个分区,但软链接不限于分区。

硬链接ln,软链接lns。

硬链接ln,软链接lns。

评价一下自己。