硬链接与软链接的区别
2026/7/23 4:08:47 网站建设 项目流程

1.硬链接

硬链接实际上就是文件的备份,文件之所以能够在操作系统保存,就是因为有文件名与inode之间存在映射关系,而这个映射关系通常会被保存在目录中,可以用readdir系统调用进行调试观察,下面是展示运行该系统调用后样子:

可以看到存在文件名与inode之间的映射,而硬链接就是创建一个新文件例如code.hard来保存code.cpp所对应的inode,并将该对应关系保存在当前文件夹中(隐含的必须用readdir才能看见),也就是说硬链接后,文件夹会保存2份文件,code.cpp与code.hard,但是它们对应的inode都是相同的。

如下图所示:

通过ls -ln创建了code.hard为code.cpp硬链接后,其inode结果一样。且引用计数为2(ubuntu前面),当删除任意一个之后,引用计数-1,但是文件依旧保留,只有当删除全部文件后,系统发现该inode引用计数为0才会删除inode结构体里保存的内容,释放资源。

2.软链接(符号链接)

硬链接是通过inode引⽤另外⼀个⽂件,软链接是通过名字引⽤另外⼀个⽂件,但实际上,新的⽂件和被引⽤的⽂件的inode不同,应⽤常⻅上可以想象成⼀个快捷⽅式。在shell中的做法

当删除code.cpp后。code.soft就会发生悬空,悬空不会发生太大危险。只是占用资源。可以看到code.soft与code.hard引用计数都是1,且各自inode是不一样的。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询