Linux文件系统相关

一、inode,block,superblock
文件存储在硬盘上,硬盘的最小存储单位叫做扇区sector,每个扇区存储512个字节,操作系统在读取
硬盘数据时,并不是一个一个扇区去读取,而是按照多个扇区,也就是一次性读取一块数据,这种由扇
区组成的块(block)是文件存取最小单位,最常见的块大小为4KB,即8个连续的sector组成一个
block。
文件的数据都存在块上,我们知道一个文件除了存储的数据以外还有一部分数据,我们称为元数据,如
文件创建日期,大小等等,这种存放元数据的区域我们称为inode。
Linux文件系统可以简单分为 inode table和data area,inode table中存有inode,每个inode中记录了
文件的元数据,

Linux文件系统的文件权限(rwx)、文件属性(拥有者、群组、时间参数等)以及文件的内容。 文件系统通
常会将这两部份的数据分别存放在不同的区块,权限与属性放置到inode中,至于实际内容则放置到
data block区块中
。另外,还有一个超级区块(superblock)会记录整个文件系统的整体信息,包括
inode与block的总量、使用量、剩余量等。

superblock:记录此filesystem 的整体信息,包括inode/block的总量、使用量、剩余量, 以及
档案系统的格式与相关信息等;
inode:记录文件的属性,一个文件占用一个inode,同时记录此文件的资料所在的block 号码;
block:实际记录文件的内容,若文件太大时,会占用多个block 。

二、Linux文件系统删除原理
硬链接:

具有相同INode节点号的文件互为硬链接文件
删除硬链接文件或者删除源文件任意一个,文件数据实际并未删除
只有删除源文件以及所对应的所有硬链接文件,文件数据才被删除,同时释放磁盘空间
硬链接文件是文件的另一个入口
可以通过设置硬链接文件防止误删

软链接:符号链接

类似于windows上的快捷方式
软连接文件类似一个文本文件,存放的是源文件的路径
删除源文件,链接文件依然存在,但是无法指向源文件
软连接文件和源文件是不同类型的文件,也是不同的文件,inode号也不同
rm可以直接删除

目录链接:

对于目录来说,只能创建软连接
每一个目录下都有硬链接 . …
对于父目录来说,子目录都会有指向父目录的链接 父目录链接数+1

每一个文件链接计数器, i_count i_nlink

i_count:当前文件被调用的次数 内存引用计数器
i_nlink:链接的数量 硬链接的数量 磁盘引用计数器

文件删除:i_count和i_nlink同时为0时,代表删除

三、Linux文件处理工具
1、cut:数据切割

-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个字节的终止符作为输出(\0),这样就避免因为存在空格被识别为多行

举例
在这里插入图片描述4、wc:word count ,用于统计指定文件中的字节数,字数,行数,并将统计结果显示输出。

-c 统计字节数
-l 统计行数
-m 统计字符
-w 统计字数
-L 打印最长行的长度

举例
在这里插入图片描述
注意:在计算长度时,空字符也计算在内。

发布了10 篇原创文章 · 获赞 11 · 访问量 1350

猜你喜欢

转载自blog.csdn.net/weixin_45440548/article/details/104667469