Linux文件系统
文件储存在硬盘中,硬盘的最小存储单位是扇区(sector),每个扇区的大小为512字节(0.5KB)。
当硬盘读取文件时不会一个扇区一个扇区的读取,那样效率太低,而是一次读取多个扇区,也就是一个块(block),这样由多个扇区组成的块,是文件存取的最小单位。块的大小,最常见的是4KB,即连续八个sector组成一个块。
文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为"索引节点"。
inode block superblock
| inode table | inode 元数据 block的存放地址 |
|---|---|
| data area | data |
| 元数据 | 文件的属性信息 大小 创建时间 权限 |
| surperblock | 记录文件系统整体信息 |
| inode | 总量 已使用 剩余 |
| block | 总量 已使用 剩余 |


Linux文件系统删除原理
硬链接:
·具有相同inode节点号的文件互为硬链接文件
·删除硬链接文件或者删除源文件任意一个,文件数据实际并未删除
·只有删除源文件以及所对应的所有硬链接文件,文件数据才被删除,同时释放磁盘空间
·硬链接文件是文件的另一个入口
·可以通过设置硬链接文件防止误删
软链接 (符号链接):
·类似于windows上的快捷方式
·软连接文件类似一个文本文件,存放的是源文件的路径
·删除源文件,链接文件依然存在,但是无法指向源文件
·软连接文件和源文件是不同类型的文件,也是不同的文件,inode号也不同
·rm可以直接删除
目录链接:
·对于目录来说,只能创建软连接
·每一个目录下都有硬链接 . …
·对于父目录来说,子目录都会有指向父目录的链接 父目录链接数+1
文件链接计数器: i_count i_nlink
| i_count | 当前文件被调用的次数 内存引用计数器 |
|---|---|
| i_nlink | 链接的数量 硬链接的数量 磁盘引用计数器 |
文件删除:i_count和i_nlink同时为0时,代表删除
linux文件处理工具
1、cut:数据切割
1、字节
2、字符
3、区域
| 选项 | 功能 |
|---|---|
| -b | 以字节为单位进行分割 |
| -c | 以字符为单位 |
| -d | 指定分隔符 默认是tab |
| -f | 配合-d使用 指定显示那个区域 |


2、sort:用于字段排序
| 选项 | 功能 |
|---|---|
| -f | 忽略大小写 |
| -b | 忽略最前面的空白字符 |
| -M | 以月份名字排序 |
| -n | 以纯数字排序 |
| -u | 相邻数据去重 |
| -r | 反向排序 |
| -t | 指定排序分隔符 |
| -k | 执行区间 |
| -o filename | 将结果保存在filename中 |

3、uniq:去除排序过的文件中重复的行
| 选项 | 功能 |
|---|---|
| -c | 标注出现的次数 |
| -d | 只输出重复的行 |
| -D | 显示所有重复行 |
| -f | 跳过前N列 列是通过空白分割 |
| -i | 忽略大小写 |
| -s N | 跳过前N个字符 |
| -u | 只显示唯一的行 |
| -w N | 每行的第N个字符之后不做对照 |
| -z | 使用’\0’作为行结束符,而不是新换行 |


4、wc: word count
| 选项 | 功能 |
|---|---|
| -c | 统计字节数 |
| -l | 统计行数 |
| -m | 统计字符 |
| -w | 统计字数 |
| -L | 打印最长行的长度 |

本文深入解析Linux文件系统的内部结构,包括硬盘存储单位、文件存取的最小单位块、inode节点的功能及存储信息,以及superblock记录的文件系统整体信息。探讨了硬链接和软链接的工作原理,以及它们在文件删除过程中的作用。最后介绍了Linux文件处理工具如cut、sort、uniq和wc的使用方法和选项。
1010

被折叠的 条评论
为什么被折叠?



