linux软链接和硬链接详解及扩散式学习总结

本文详细介绍了Linux系统中的软链接和硬链接的区别与原理。软链接仅包含目标文件的路径信息,类似于Windows中的快捷方式;而硬链接则直接指向文件的数据块,即使原始文件被删除,通过硬链接仍然可以访问数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

linux软链接及硬链接

==原理==

所谓链接,就是给文件或和目录(文件夹)再次创建一个链接,可以通过访问使用此链接的方式达到访问该文件或这目录的目的,而建立链接的目的在我看来是方便人们使用操作系统。

1.软链接:顾名思义,这种链接方式没有“真才实料(指最下方存储真正数据的数据块)”,是“软”的。这种链接方式只是保存要访问文件或者目录的绝对路径(所以软链接又称字符链接)。可以方便理解为windows中的快捷方式,删除原文件后会对此软链接(快捷方式)产生影响。软链接可以在任何地方建立,只要是同一系统即可,因为软链接的inode与原文件的inode不同。

2.硬链接:与软链接相比较,硬链接多了一些真才实学,他会关联数据块,而不只是简单的一个绝对路径。建立的硬链接与原文件的inode相同,因为必须在同一分区中才可以建立链接。例如 A是B的硬链接(A和B都是文件名),则A的目录项中的inode节点号与B的目录项中的inode节点号相同,即一个inode节点对应两个不同的文件名,两个文件名指向同一个文件,A和B对文件系统来说是完全平等的。如果删除了其中一个,对另外一个没有影响。

大家有没有想过,为什么原文件删除对硬链接无影响?还可以取到数据块?

有以下三点解释:
1.每增加一个文件名,inode节点上的链接数增加一,每删除一个对应的文件名,inode节点上的链接数减一,直到为0,inode节点和对应的数据块被回收。

2.文件和文件名是不同的东西,rm A删除的只是A这个文件名,而A对应的数据块(文件)只有在inode节点链接数减少为0的时候才会被系统回收。

3.我们用的ls cat等查看文件是否存在的命令是从超级块或者目录block中得到文件的信息。而不是从数据块中取,不要陷入这个误区,据一个最简单的例子,一个文件可能是多个数据块存储的,ls等命令有如何会在rm删除了文件名之后,还可以知道文件存储的分散数据块?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值