码迷,mamicode.com
首页 > 其他好文 > 详细

硬链接与软链接的缠绵

时间:2015-09-03 23:19:12      阅读:273      评论:0      收藏:0      [点我收藏+]

标签:

  Preface:

      本文以站在不懂到懂的角度,知识开始理解有错误,但慢慢进阶,最后豁然开朗。要点评先看完再说。  

  Basic_Knowledge:

      在linux下有硬链接和软链接两种,硬链接为文件的别名,它和软链接一样,都指向文件,但是硬链接不是一个文件。

      linux下判定是不是一个独立文件看的就是其inode是不是独一无二的,ls -l 一下,如果链接数是1,那么这肯定是一个文件。

      命令:ex > ln      test     f_h     ||       cp     -l    test    f_h       //硬链接

         ex > ln      test     s_s     ||       cp     -s   test    s_s      //软链接

      Hard Link:  每个文件都会都会占用一个inode,文件内容由inode的记录来指向。

         想要读取该文件,必须经过目录所记录的文件名来指向正确的inode号码来读取。

         文件名其实只与目录有关,但是文件内容与inode有关。一个inode可能会与多个文件名关联,这就是硬链接的由来。

        技术分享  (图出处来自网上,作者如有觉得不妥请留言)

      Symbolic Link:  软链接其实就像windows桌面上面放的快捷方式一样,删除了软链接就会删除源文件,而硬链接不会,软链接独立于源文件,指向源文件,但是其所占有的inode却和源文件不同

        技术分享  (图出处来自网上,作者如有觉得不妥请留言)

  Practice:

        0x01:

         技术分享

        0x02:

         由于三个文件名都指向2362180号inode,所以第二列都显示3,f_h、s_h的都是硬链接,但这里居然显示的是普通文件。          

         技术分享

          技术分享

                软链接所在的inode都互相独立,即使都指向同一个文件。

          0x03:

         胡思乱想一下,创建一个软链接的硬链接会发生什么,实践一下。

         技术分享

           结果就是软链接的硬链接还是一个软链接,是不是有点绕口,两个软链接都指向一个文件。

      0x04:

          那如果再创建一个硬链接的软链接会如何?

          技术分享

          创建的这个软链接指向s_h,inode唯一。

      0x05:

          鸟哥上面说,删除软链接,源文件就会删除,试一下。

          技术分享

         = =,郁闷。

      0x06:

          还好源文件还在,我们试试把源文件删除,然后再用软链接、硬链接打开试试。

          技术分享

              技术分享,

            技术分享

               技术分享

            技术分享

               技术分享

        细节不讲了,直接说原因,软链接独立,源文件删除后,由于没有了源文件的文件名,所以会出现打开文件为空的现象。

        但是硬链接则不同,文件打开最关键的一点就是找到文件的inode,源文件即使删除,但硬链接文件知道源文件的inode号码,还是可以打开文件读取数据。

        技术分享

          技术分享(图出处来自网上,作者如有觉得不妥请留言)

              End:  书上说硬链接不是文件,只是文件的别名。在我看来它就是一个文件,虽然与其它文件共享一个inode,在源文件看来它不是一个文件,只是自己的别名,但是它和源文件数据什么都是一样,只不过名字不一样。在硬链接文件看来,源文件和自己(数据、权限等,除文件名)一样,那源文件岂不是自己的别名 了,源文件岂不是文件了?换个对象考虑考虑。再者,有一句话说得好:linux下一切皆文件。可能你还是有疑惑:硬链接本来就不是文件。但是我把源文件删除之后,为何用硬链接还是可以读出数据(这里inode起着很大作用,只要有inode就可以找到数据,前提是数据还没有被其他数据覆盖),没有文件,何来数据,没有地球,何来地球万物

        以上只是个人观点,看客请保持自己的思维。

 

 

 

 

 

    

硬链接与软链接的缠绵

标签:

原文地址:http://www.cnblogs.com/s742780906/p/4780774.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!