前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >【Linux】理解文件系统与软硬链接,观察inode号理解<“软链接是包含路径的新文件“,“硬链接是关于文件名的机制“>,最终明白<什么是真正删除一个文件>

【Linux】理解文件系统与软硬链接,观察inode号理解<“软链接是包含路径的新文件“,“硬链接是关于文件名的机制“>,最终明白<什么是真正删除一个文件>

作者头像
YY的秘密代码小屋
发布2024-10-14 08:39:28
发布2024-10-14 08:39:28
10500
代码可运行
举报
文章被收录于专栏:C++系列C++系列
运行总次数:0
代码可运行

一.文件信息(文件名+文件元数据)介绍

  • 一个完整的文件包括: 1.文件信息 2.文件内容
  • ls -l 显示的是 文件信息
  • 我们使用ls -l的时候看到的除了看到文件名,还看到了文件元数据。
代码语言:javascript
代码运行次数:0
复制
[root@localhost linux]# ls -l
总用量 12
-rwxr-xr-x. 1 root root 7438 "9月 13 14:56" a.out
-rw-r--r--. 1 root root 654 "9月 13 14:56" test.c
  • 分别对应含义如下图所示

二.文件系统与inode介绍

  • Linux ext2文件系统,下图为 磁盘文件系统图 (内核内存映像肯定有所不同),磁盘是典型的块设备, 硬盘分区被划分为一个个的block。

每个Block分区分成许多部分,下面是这些分区的介绍,主要关注i节点表与数据区:

  • Block Group: ext2文件系统会根据分区的大小划分为数个Block Group。而每个Block Group都有着相同的结构组成。政府管理各区的例子
  • 超级块(Super Block): 存放文件系统本身的结构信息。记录的信息主要有:bolck 和 inode的总量,未使用的block和inode的数量,一个block和inode的大小,最近一次挂载的时间,最近一次写入数据的时间,最近一次检验磁盘的时间等其他文件系统的相关信息。Super Block的信息被破坏,可以说整个文件系统结构就被破坏了
  • GDT,Group Descriptor Table: 块组描述符,描述块组属性信息
  • 块位图(Block Bitmap): Block Bitmap中记录着Data Block中哪个数据块已经被占用,哪个数据块没有被占用inode位图(inode Bitmap):每个bit表示一个inode是否空闲可用。
  • i节点表(结构体): 存放文件属性 如 文件大小,所有者,最近修改时间等。为什么软连接是一个独立的文件而硬链接不是? 是因为软连接 有独立的inode编号
  • 数据区(Data blocks):存放文件内容

三.【软/硬链接】理解与介绍

1.软硬链接基本知识

  • 软链接: 独立的文件 有着独立inode 软连接的内容是目标文件路径 ,类比windows系统的快捷方式
  • 硬链接: 关于文件名的机制,非独立文件,指定目录内的一组 映射 关系,inode内部有引用计数,会记录映射关系

※为什么软连接是一个独立的文件而硬链接不是? 是因为软连接 有独立的inode编号。

2.软硬链接创建&删除语法

代码语言:javascript
代码运行次数:0
复制
-- 创建硬链接
ln test1 test.hard.link
-- 创建软链接(-s 即 soft)
ln -s test1 test.soft.link

-- 删除链接
unlink test1 test.hard.link

3.观察inode编号理解链接中的本质

  • 我们对test1创建一个软链接文件test1.soft.link
  • 发现 二者inode编号不一致
  • 我们对test2创建一个硬链接文件test1.hard.link
  • 发现 二者inode编号一致

4.一个操作理解-“硬链接是关于文件名的机制”

  • 我们删除test2的硬链接后,发现其硬链接数量由2变为1
  • 那我们发现其实他的inode号并没有发生变化, 那是不是实现了文件名的修改?即重命名
  • 那我们下次想要修改文件名时,也可以创建一个硬链接并删除原来的路径下的源文件

5.一个文件真正被删除——没有<文件名+映射关系(硬链接)>

  • 所以我们最终得出结论:当没有<文件名+映射关系(硬链接),一个文件才算真正被删除
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-10-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.文件信息(文件名+文件元数据)介绍
  • 二.文件系统与inode介绍
  • 三.【软/硬链接】理解与介绍
    • 1.软硬链接基本知识
    • 2.软硬链接创建&删除语法
    • 3.观察inode编号理解链接中的本质
    • 4.一个操作理解-“硬链接是关于文件名的机制”
    • 5.一个文件真正被删除——没有<文件名+映射关系(硬链接)>
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档