linux中的硬链接和软链接

硬链接:指向同一个索引节点,进而指向同一个物理文件。只要有一个硬链接存在,物理文件就不会被清除。硬链接和原文件是“平等”的,只删除一个不能使文件真正被删除。

软链接:指向一个新的索引节点,该节点指向的空间存的是文件的路径,根据路径找到物理文件。如果软链接创建时指定的那个目录被“删除”,则无法访问物理文件。软链接是附属于原文件的,删除、更改原文件路径后软链接将失效

如图,file是原文件,硬链接hard link和它指向了同一个索引节点,进而指向同一数据块。而软链接soft link指向了新的索引节点,数据块存的是file的路径,访问时是先获得路径(file),再访问真正的数据块的。

硬链接和软链接

实验一 创建原文件myfile,硬链接hard1、hard2,软链接soft1、soft2

现象:硬链接的地址和myfile一样(290709),都是i节点的地址,指向的空间存的是真正的文件。软链接的地址和myfile不一样,也各不相同(290710和290711)。它的地址是i节点地址,指向的空间存的是文件的路径(myfile的路径)

创建原文件myfile,硬链接hard1、hard2,软链接soft1、soft2

实验二 删除原文件myfile

现象:硬链接hard1仍能访问,软链接soft1不能访问

删除原文件后,硬链接仍能访问,软链接不能访问

原因:有硬链接存在,所以物理文件没有真正删除。访问软链接时,是从myfile这个目录查找的,而这个目录链接被删除了,所以找不到

实验三 将myfile移动到myfile2

现象:i节点地址保持不变。hard2仍然可以访问,soft2则不能。

移动原文件

原因:将myfile移动到myfile2,仅仅是目录名称改变了,而i节点和真正的存储空间都不变。硬链接和原文件是“平等”的,所以改变myfile不会影响到hard2。但访问软链接soft2时,是根据原来的路径myfile查找的,所以找不到了。


参考:https://www.jianshu.com/p/1d6a54676915
 

猜你喜欢

转载自blog.csdn.net/zpznba/article/details/86411213