Linux之软链接与硬链接

1、ext4 文件系统

在讲区别前,让我们先了解下ext文件系统是如何工作的?

  • ext文件系统是分成incode和block两个部分

    • inode:记录文件属性,在linux系统中,目录也是一种文件哦。文件属性包括权限、文件所有着和所属组、文件大小、文件的数据真正保存的 block 编号。
    • block:block 用于实际的数据存储,如果一个 block 放不下数据,则可以占用多个 block。目录的block记录着一级文件名(目录也是文件,所以也显示出目录名称)和一级文件的inode。

例子:假设在系统查找 /root/tmp/test 的文件时,系统是如何一步一步进行的
1、首先找到根目录的 inode(根目录的 inode 是系统已知的,inode 号是 2),然后判断用户是否有权限访问根目录的 block
2、如果有权限,则可以在根目录的 block 中访问到 root 的文件名及对应的 inode 号
3、通过 root 目录的 inode 号,可以查找到 root 目录的 inode 信息,接着判断用户是否有权限访问 root目录的 block。
4、如果有权限,则可以在root目录的 block 中访问到 tmp 的文件名及对应的 inode 号
5、通过tmp的inode号找到tmp目录的inode信息,接着判断是否有权限访问tmp目录的block
6、如果有权限,则可以在tmp目录的block块中访问到test的文件名和inode好
7、通过inode号找到test文件的inode信息,接着判断是否有权限访问test文件的block
8、如果有权限,则可以在test的block信息。现在问题来了,如果test是普通文件,如果是软链接,如果是硬链接,它们分别是怎么运行的?

在这里插入图片描述
流程图文件地址:https://www.processon.com/view/link/5ec7492f1e08530a9b13753a

2、软连接与硬链接的区别:

ln 命令用于给文件创建链接,根据 Linux 系统存储文件的特点,链接的方式分为以下 2 种:
软链接:类似于 Windows 系统中给文件创建快捷方式,即产生一个特殊的文件,该文件用来指向另一个文件,此链接方式同样适用于目录。
硬链接:我们知道,文件的基本信息都存储在 inode 中,而硬链接指的就是给一个文件的 inode 分配多个文件名,通过任何一个文件名,都可以找到此文件的 inode,从而读取该文件的数据信息。

  • 硬链接示意图

    在这里插入图片描述
  • 软链接示意图

在这里插入图片描述

参考C语言中文网http://c.biancheng.net/view/vip_7654.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值