linux---硬链接和软链接

文件系统
磁盘上文件读写存储与查找系统(管理)就是文件系统,在每一个分区都会存在自己的文件系统。
在这里插入图片描述
在这里我们有swap交换分区和文件分区,我们这里只介绍文件分区。
在这里插入图片描述在文件分区都会有上图中的分块管理

  • inode每个文件都会有一个inode节点,存储我们文件的信息,例如大小,权限,时间,占用大小…
  • 超级块:纪录文件分区信息,例如块个数,节点区域等等
  • data:标记那些数据块已经使用
  • inode_bitmap:节点位图区域
  • data_bitmap:数据位图区域

文件存储过程:通过inode_bitmap在inode区域获取空间inode节点,通过data_bitmap获取空闲的数据块,在inode节点中纪录文件信息以及数据块的位置,并且将文件数据写入到数据块中,将自己目录项信息添加到所在目录文件中去。
在这里插入图片描述
文件读取过程:通过目录项中获取文件的inode节点号(文件唯一),通过inode节点号在inode区域找到inode节点,通过inode节点中的数据块地址信息找到我们制定位置的读取信息。
在这里插入图片描述软连接和硬链接
软连接:创建软连接,创建了一个新的文件(包括了inode节点等数据),但是他的数据段存储的是建立的路径,通过源文件的路径便可找到数据段
硬链接:一个文件的名字,在目录项中与源文件使用同一个inode节点
创建软硬链接

  • ln src des
    创建硬链接,一般使用hard后缀名字
    在这里插入图片描述
    执行的结果就是:
    在这里插入图片描述注意到我们的硬链接计数变为了2;

  • ln -s src des
    创建软链接,一般使用soft后缀名字
    在这里插入图片描述
    在这里插入图片描述注意我们的软链接文件的硬链接计数为1,就是他自己本身。
    当我们删除掉源文件的时候我们可以看到下图
    在这里插入图片描述

  • 软硬链接实质
    我们的硬链接仍然可以读取到我们的文件内容,但是我们的软链接就读取不到了我们的内容,变为了红色。说明我们硬链接是创建一个新的文件,在目录项中添加自己的文件,并且inode节点是和源文件一样的,当源文件删除的时候我们还能找到数据段。软链接创建了一个新的文件,并且是一个新的inode节点,知识数据段存储的是源文件建立的路径,当我们删除掉了我们的源文件,那源文件的路径也就失效了,所有我们的软链接文件就找不到我们的数据段。

  • 多重软硬链接
    其实在我们的硬链接和软链接的源文件仍旧可以是我们的软硬链接文件,
    在这里插入图片描述在我们创建多个硬链接文件的时候实际上都创建了一个新的文件都只想内存中存储的源文件的位置,但是软件链接文件是存储的被链接文件的路径,所有我们常说软链接文件又称为快捷方式文件。
    软硬链接的区别

  • 硬链接共用同一个inode节点,软链接使用自己独立的inode节点

  • 删除源文件软链接文件将失效,软链接文件只是链接数计数减少,但是当我们的硬链接计数减为0的时候就相当于删除掉了文件

  • 软链接可以对目录进行创建,硬链接只能对文件创建(因为在不同的磁盘分区的情况下所用的文件系统可能是不一样的,或者inode节点可能会重复,此时我们软链接会创建自己的inode节点,所有不会发生inode节点重复,但是硬链接是共用同一个inode节点,可能会发生重复)

  • 软链接可以跨分区创建,但是硬链接不会(理由同上面的一样)

猜你喜欢

转载自blog.csdn.net/boke_fengwei/article/details/89285324