美文网首页
实验验证 Linux硬链接和软链接的区别

实验验证 Linux硬链接和软链接的区别

作者: irat | 来源:发表于2018-09-25 13:57 被阅读0次

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

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

    如图,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这个目录查找的,而这个目录链接被删除了,所以找不到

    实验三 修改软链接指向的文件soft2

    现象:刚才删除的myfile又可以访问了,且内容和修改的soft2一致。soft1的内容也和soft2一样。而硬链接hard1和hard2的内容没有变(忘记截图了😓)。myfile的i节点地址和最初创建时不一样了(从290709变成了290712),说明myfile指向了不同i节点,不同的物理存储空间。

    修改软链接指向的文件

    原因:修改soft2相当于修改它指向的目录,即myfile所链接的目录,故重新创建文件并写入内容。重新创建时要分配新的物理空间和对应的i节点(290712)。注意这个file和之前删除的file虽然名字一样,但其实是两个文件了(删除的file现在被hard1和hard2引用)。

    实验四 将myfile移动到myfile2

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

    移动原文件

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

    相关文章

      网友评论

          本文标题:实验验证 Linux硬链接和软链接的区别

          本文链接:https://www.haomeiwen.com/subject/ybykoftx.html