为学习pnpm了解一点基础:linux的文件存储 inode

简介: 本来我想去了解一下硬连接和软连接的,但是发现简单的了解一下后,还是需要进一步的了解 Inode。所以再来学学Inode。

image.png


大家好,我是 那个曾经的少年回来了。10年前我也曾经年轻过,如今已步入被淘汰的年龄,但如下幡然醒悟,所以活在当下,每天努力一点点,来看看2024年的时候自己会是什么样子吧,2024年的前端又会是什么样子,而2024年的中国乃至全球又会变成什么样子,如果你也有想法,那还不赶紧行动起来。期待是美好的,但是更重要的是要为美好而为之奋斗付诸于行动。


本来我想去了解一下硬连接和软连接的,但是发现简单的了解一下后,还是需要进一步的了解 Inode。所以再来学学Inode。

以下操作都是在linux系统上进行操作的


查看inode信息


首先我们通过命令来查看一下Inode。


stat aehyok


image.png


通过访问文件名 aehyok可以发现该文件名所对应的Inode信息


操作系统的硬盘一般分成了两个区域,一个是数据区,用来存放文件数据的;另一个是inode区(inode table),存放inode所包含的信息。


image.png


数据文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。


一个"数据块"(Block)包含多个"扇区",数据块便是文件存储的最小单位。


还有另外一个地方存储文件的元信息,比如:文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为"索引节点"。


inode包含的文件元信息,具体来说有以下内容:


文件的大小
文件数据块
文件所属设备
文件的Inode id
文件硬链接数,即有多少文件名指向这个inode
文件的读、写、执行权限
文件的U id User id
文件的G id Group id
文件最近访问时间
文件最近更改时间
文件最近改动时间
创建时间


总之除了文件名以外的所有信息都保存在inode中。每个inode都有一个号码,操作系统用inode号码来识别不同的文件。


表面上,用户通过文件名,打开文件。实际上,系统内部这个过程分成三步:首先,系统找到这个文件名对应的inode号码;其次,通过inode号码,获取inode信息;最后,根据inode信息,找到文件数据所在的block,读出数据。


总结


  • 有的时候,文件名包含特殊字符,无法正常删除。


  • 可以直接删除inode节点,就能起到删除文件的作用。


  • 移动文件或重命名文件,只是改变文件名,不影响inode号码。


  • 打开一个文件以后,系统就以inode号码来识别这个文件,不再考虑文件名。


  • 因此,通常来说,系统无法从inode号码得知文件名。


最后下一节再来熟悉和了解一下硬链接和软链接

目录
相关文章
|
8天前
|
Linux 开发工具 C语言
Linux的学习之路:7、yum与git
Linux的学习之路:7、yum与git
10 0
|
8天前
|
Unix Linux Windows
Linux的学习之路:3、基础指令(2)
Linux的学习之路:3、基础指令(2)
31 0
|
1天前
|
Linux Shell 虚拟化
【Linux学习】Linux 的虚拟化和容器化技术
【Linux学习】Linux 的虚拟化和容器化技术
|
8天前
|
消息中间件 Unix Linux
Linux的学习之路:17、进程间通信(1)
Linux的学习之路:17、进程间通信(1)
22 1
|
8天前
|
存储 Linux 调度
Linux的学习之路:12、地址空间(续)与进程的创建、终止和等待
Linux的学习之路:12、地址空间(续)与进程的创建、终止和等待
14 0
|
8天前
|
Linux C++
Linux的学习之路:11、地址空间
Linux的学习之路:11、地址空间
16 0
|
8天前
|
存储 安全 Linux
Linux的学习之路:9、冯诺依曼与进程(1)
Linux的学习之路:9、冯诺依曼与进程(1)
18 0
|
8天前
|
NoSQL IDE Linux
Linux的学习之路:8、Linux调试器-gdb使用
Linux的学习之路:8、Linux调试器-gdb使用
19 0
|
8天前
|
Java Linux 编译器
Linux的学习之路:6、Linux编译器-gcc/g++使用
Linux的学习之路:6、Linux编译器-gcc/g++使用
22 0
|
21天前
|
监控 Linux 网络虚拟化
从入门到精通:系统性学习Linux虚拟网络设备的全面指南
学习一个从未接触过的Linux虚拟网络设备是一个分阶段的过程,从最初的认识到最后的精通,需要系统性和逐步深入的学习策略。以下是一个全面的指南📚,旨在帮助初学者通过多角度分析🔍,一步一步地学习和掌握新的Linux虚拟网络设备。
从入门到精通:系统性学习Linux虚拟网络设备的全面指南