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 | 打印最长行的长度 |