zoukankan      html  css  js  c++  java
  • Linux 运维之硬链接与软链接详解

      了解这个的时候不如先知道下文件吧.

        我们知道文件都有文件名与数据,但是呢这个在 Linux 上被分成两个部分:用户数据 (user data) 与元数据 (metadata)。

        用户数据,即文件数据块 (data block),数据块是记录文件真实内容的地方;

        而元数据则是文件的附加属性,如文件大小、创建时间、所有者等信息。

        在 Linux 中,元数据中的 inode 号(inode 是文件元数据的一部分但其并不包含文件名,inode 号即索引节点号)才是文件的唯一标识而非文件名。文件名是为了方便人们的记忆和使用     

        系统或程序通过 inode 号寻找正确的文件数据块,所以呢文件读取过程则为先读取inode,然后找block数据。

        而linux 引入的两种链接:硬链接与软链接,为系统解决了文件的共享使用,同时提供隐藏文件路径,节省存储,同时增加了文件的安全。

        你可能看了这么久还是一脸懵逼的,不要着急看完实例,你就懂了。

    一,硬链接

        就是一个文件的一个或多个文件名 -->这么简单的回答是不是又懵逼了呢??

        通俗的讲硬链接就是一个你的复制人,你在的时候你干什么他也干什么,但是你不在了,他是不会消失,就不受你约束了。

        可是我还要讲一个呢---------ln命令  ---> ln [选项]... [文件]...

        你看着文章只需要掌握两个

                  ln  目标文件   创一个个性化名字   ---->硬链接

                  ln  -s   目标文件   创一个个性化名字------>软链接       

        ln  就是创建链接的     ----->然后没了。

        

        ln  学会了现在正式开讲  硬链接

        我们通过硬链接的特性来去了解他吧

       1,文件具有相同的inode及data  block,

         

          我们先创建一个文件,现在我要给他添加硬链接,

         

         创建好了

         

         是不是创建好了??然后用ls -li 查看下看到inode一样的

          这就是inode一样。看到这里肯定有个模糊的理解了吧,看张图:

        

         2,硬链接是不会占用空间的

            这个你知道就行,记住不占用磁盘空间

         3,只能对已存在的文件进行创建

           创建的时候源文件要在,你不可能凭空出来个链接文件吧??

         4,不能对目录进行创建,只可对文件创建  

            对目录创建是软连接的事,硬链接只会创建文件链接哦  

         5,无论哪个文件输入东西另一个也会有

             

            这就是复制人的强大

          6,删除一个文件另一个是不受影响的

            我们删除源文件看看:

              

           不受影响,依旧能写能读

           注意:目录创建是不可以的哦

            

          

            也不能交叉文件系统

             我是这样理解一个root 系统 一个dev  里面东西不一样就不行了   

     二,软连接

        来完成硬链接不能完成的事:

        软链接呢就像你的投影,为啥这样说呢?你有的他有,你不在了他就变木头

        看下软链接的读取流程  

     

        创建一个软链接先:

        

        看到错误没呢?

        创建的时候,要创建的内容不能带/ 所以目录名不能和文件名重合。

         软链接呢可以做硬链接的事,即可以文件,也可以目录哦

      特性:  1,软链接有自己的文件属性及权限,inode不同等

           不知道大家有没有发现上面图片,已经描述很详细了

            文件属性不同呢

            2, 可对不存在的文件或目录创建软链接

            这个是不是强大多了?不过你创建好了,源文件不再,创建的是没用的呢

              

               我们要怎么让他有用呢??

            答案是创建源文件

        

          看不闪了 活了 ,,,

            同样可以推出,,假如删除源文件,链接文件是不能用的,无效

          

         

         3,文件内容共享,无论哪里有新文件还是内容,另一边都会有

           

        

         4,软连接是可以对文件或者目录创建的

          这个可以理解吧

        5,创建软链接时,链接计数 i_nlink 不会增加

        

        不管你创建多少都不会增加的,硬链接却会有哦我们看看:

        

         6, 删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接)

       

          好了结束了 ,下一篇博客不见不散! 

  • 相关阅读:
    Java精选笔记_EL表达式
    Java精选笔记_文件上传与下载
    Java精选笔记_Servlet事件监听器
    windows 下安装perl Tk 模块
    html 基础
    用grep 筛选fastq 序列
    php 统计fasta 序列长度和GC含量
    perl 截取 fastq文件
    Java_基础知识回顾
    Git_期末总结
  • 原文地址:https://www.cnblogs.com/kingle-study/p/9342001.html
Copyright © 2011-2022 走看看