Linux中的软链接与硬链接

一、inode的概念

此部分参考:https://blog.csdn.net/ML908/article/details/103374494

1、一个文件的数据包括元信息和实际数据,元信息包括以下内容:

  • 文件的字节数
  • 文件拥有者的User ID
  • 文件的Group ID
  • 文件的读、写、执行权限
  • 文件的时间戳等

2、这些元信息保存在inode(索引节点)中,每个文件都必须占用一个inode,每个inode都有一个号码,在Linux系统内部不适用文件名,会使用inode号码来识别文件
3、目录文件的结构:
目录也是一种文件,创建一个空的目录就是创建一个内容为0的文件,每一行称为一个目录项
在这里插入图片描述
4、Linux系统文件三个主要的时间属性

ctime(change time)最后一次改变文件或目录(属性)的时间
atime(access time)最后一次访问文件或目录的时间
mtime(modify time)最后一次修改文件或目录(内容)的时间

5、查看inode号码

ls -i file  ##显示文件的inode号码
stat file  ##显示文件的元信息,从中获取inode号码

在这里插入图片描述6、inode的作用:
(1)当文件名包含特殊字符,可能无法正常删除文件,直接删除inode,也可以删除文件
(2)移动或重命名文件时,只改变文件名,不影响inode号码
(3)打开一个文件后,系统通过inode号码来识别该文件,不再考虑文件名
7、使用df -i命令可以查看每个硬盘分区的inode总数和已经使用的数量
在这里插入图片描述8、访问文件的简单流程
在这里插入图片描述

二、软链接

软链接相当于源文件的一个快捷方式,存放源文件的路径指向,有自己的 inode 号以及用户数据块。

ln -s 源文件 目标文件位置
  • 软链接有自己的文件属性及权限等,可对不存在的文件或目录创建软链接。
  • 软链接可以指向目录,而且软链接所指向的目录可以位于不同的文件系统中。

在这里插入图片描述

  • 当原始文件被删除后,链接文件也将失效。
  • 在删除源文件后,向软链接里写入内容,源文件会恢复,并包含与软链接相同的内容。

在这里插入图片描述

三、硬链接

硬链接文件本质上与源文件其实是同一个文件,相当于以文件副本的形式存在,但不占用实际空间。

ln 源文件 目标文件位置
  • 每添加一个硬链接,该文件的inode链接数就会增加1;而且只有当该文件的inode链接数为0时,才算彻底将它删除。
  • 硬链接实际上是指向原文件的inode的指针,所以硬链接的文件属性及权限等和源文件均一致。

在这里插入图片描述

  • 链接数示意(链路数为2)
    在这里插入图片描述
  • 当无论修改硬链接或者源文件的内容,另外一个都会同步更新
  • 删除源文件后,硬链接仍旧可用

在这里插入图片描述

硬链接的两个限制

  • 只能对已存在的文件进行创建,不能对目录进行创建

由于硬链接是同步更新的,所以引入了对目录的硬链接就有可能在目录中引入循环,在目录遍历的时候系统就会陷入无限循环当中,这样导致无法定位到访问目录

  • 硬链接不能跨文件系统创建

不同的文件系统的文件管理方式不同,甚至有些文件系统不是索引文件系统,并不一定两个文件系统的inode有相同的含义。即使有相同inode含义,硬链接的几个文件,具有相同的inode号码,不同文件系统中,也可能有使用该inode号码的文件,也会产生矛盾。

四、软链接与硬链接的区别

软链接硬链接
本质上不同的文件(快捷方式)同一文件(副本)
inode号码不同相同
目录支持对目录创建不支持对目录创建
文件系统支持跨文件系统不支持跨文件系统
文件类型L(symbolic link)与源文件一致
相互关系删除源文件,链接失效删除源文件,链接不受影响
生成命令ln -sln
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值