inode
-
概念
Inode(Index Node)是Unix/Linux文件系统中用于存储文件元数据的数据结构,每个文件/目录对应一个唯一的inode。 -
数据内容(元数据)
block编号
文件类型
普通文件(-)、目录(d)、符号链接(l)、设备文件(c/b)等。权限(rwx)
文件所有者、组和其他用户的读/写/执行权限(如 755)。所有者(UID/GID)
文件所属用户和组的 ID。大小(Bytes)
文件的字节大小。时间戳
创建时间(ctime)、修改时间(mtime)、访问时间(atime)。硬链接计数
指向该 inode 的目录项数量(删除文件时计数为 0 才释放空间)。数据块指针
直接、间接、双重间接等指针,用于定位文件数据所在的 block(见下表)。
block
-
概念
block(数据块)是文件系统中最小的存储单元。
文件的实际内容保存在 data block 中。每个 block 都有属于自己的编号。当文件太大时,可能会占用多个 block 块。 -
数据内容
数据块
存储文件的实际内容(如文本、图片二进制数据等)。目录块
存储目录下的文件名和对应 inode 号的映射表(如 ls命令读取的内容)。间接块
当文件较大时,存储额外的数据块指针(扩展 inode 的寻址能力)。特殊块
如符号链接的路径名(若较短可能直接存在 inode 中)。
位图
分类:
inode位图/block(块)位图
作用:
记录inode/block是否使用
删除文件背后发生了什么
将inode位图对应位置设置为0
将block位图对应位置设置为0
链接
软链接
概念:
软链接是一个 独立的文件,它存储了目标文件的 路径引用。
如果目标文件被删除,软链接会变成 “悬空链接”,无法访问。
特点:
类似于快捷方式
与原文件的inode号不一致
block 中存放目的文件的路径
文件和文件夹都可以创建软链接
路径:
绝对路径
ln -s /root/src /root/soft
相对路径
ln -s src soft
硬链接
概念:
硬链接是 指向同一个 inode 的多个文件名,本质上是同一个文件的多个入口。
特点:
和原文件共享inode
文件夹不能创建硬链接
防止死循环,两个文件循环遍历
举例:
/B /A 是两个文件夹
/B/A.link /A/B.link 在B文件夹下创建A的硬链接,在A文件夹下创建B的硬链接
/那么文件系统在生成B文件夹的目录项(遍历目录)时,就会导致
/B/A.link/B.link/A.link/B.link…(无限循环)
软链接是可检测的且可跳过的,所以可以指向文件夹。
/B/A.link /B.link(被检测为软链接)
硬链接不能跨分区创建,防止inode冲突(链接文件与原文件inode号一致,而不同分区inode编号是彼此独立的,会导致冲突)
路径:
绝对路径
ln /root/src /root/hard
相对路径
ln src hard