Linux软硬连接

一、ln命令:创建文件之间的链接,连接类型包括硬链接和软连接。

   硬链接:硬链接生成的是普通文件

   软连接/符号链接:生成符号链接文件

  

  

  

二、 readlink命令:主要用来找到符号链接所指向的位置

     使用cat查看软连接文件,只能看到源文件的内容。软连接文件存储的是源文件的路径。

     软链接可以看到源文件的路径

     硬链接看不到信息

 

三、 inode与硬链接

    操作系统中专门用于管理和存储文件的信息软件称之为文件系统,文件系统将文件的元信息(文件创建者,日期,大小等,可以通过stat命令查看元信息)存储在一个称之为inode的区域。

    1. 查看文件inode号:ls -li

  

    inode大小:硬盘格式化的时候,系统自动分为2个区,一个是数据区,一个是inode区(存放inode信息)。每个inode节点大小,一般是128字节或是256字节,inode节点的总数在格式化的时候就决定了。

  

    block磁盘块:block是存放实际文件数据的单元,例如图片、视频、文本等数据,单个文件占用多个block来存储。操作系统标识文件是以inode号码识别,文件名只是一个绰号而已。

    2. 文件系统读取文件

  

   3 硬链接:一般情况下,文件名与inode号是一一对应的,Linux系统允许多个文件路径指向同一个inode号码。

    目录不支持硬链接;不得跨文件系统;硬链接数会增加inode引用计数

  

  4. 软连接:类似于windows的快捷方式,是指向一个文件路径的另一个文件路径

    特性:1)软链接是两个独立的文件,有各自的inode,创建软链接不会增加符号引用计数

               2)支持目录软链接,可以跨文件系统

               3)软链接有自己的inode号

               4)软链接文件类型是l

               5)  软链接指向源文件,若源文件不存在,软链接失效(白字红底闪烁报错)

   

  5. 软硬连接原理图

  

    软硬链接总结:

     1)删除软链接对源文件,硬链接无影响

     2)删除硬链接对源文件,软链接无影响

     3)删除源文件,对硬链接,文件硬链接数减少。

  6. 文件夹的链接数:

      文件夹创建后,默认有.和..两个目录

      .的inode号就是当前目录的inode号,如同硬链接

      ..的inode号是上级目录的inode号,如同父目录的硬链接

       因此,任意一个目录的硬链接基数都是2(目录名和当前目录名)

        文件夹禁止创建硬链接

 

  

四、 查看和管理inode

      无论是硬盘、U盘等在Linux中被格式化为ext系列的文件系统后,都被分为:inode—默认128或者256字节;Block—默认1-4k

      查看文件系统的inode总数以及剩余数量

 

posted @ 2020-04-12 18:58  出水芙蓉·薇薇  阅读(1167)  评论(0编辑  收藏  举报