在磁盘上创建文件和删除文件

使用ls -l命令可以查看文件的信息
这里写图片描述
ls -l读取的是磁盘上的文件信息,再显示出来。那么磁盘上的文件是如何创建,删除,如何根据文件名就能找到文件内容?

简单的文件系统如下图所示:
super block(超级块):存放文件系统本身的结构信息;
inode bitmap:标记inode区中哪些inode块已经被占用;
block bitmap:标记block区中哪些block块是空闲的;
inode区:存放文件属性,如:文件大小,文件所有者,文件最后修改时间等;
block区:存放文件的内容;
这里写图片描述
磁盘上创建新文件
1.存储属性
内核现在inode bitmap中找为0的比特位N,将对应比特N上的数据由0变1,在inode区中将第N个inode节点分配,存储文件属性;
2.存储内容
从block bitmap中找为0的比特位M,将对应比特位M上的数据由0变1,在block区中将第M个block块分配,存储文件内容;
3.记录分配情况
将创建的新文件所用的block块号写进inode节点中,将inode节点与block块关联起来;
4.添加文件名到目录
将文件名和inode号的对应关系添加到目录的block块中。

磁盘上查看文件
在Linux下一切皆文件,目录也属于文件有block区,目录的block区存储的是文件名和inode号的对应关系;可以在文件所属目录底下通过文件名找到其inode号,查看文件属性;再根据inode和block块的对应关系,查看文件的内容

磁盘上删除文件
1.将文件在inode bitmap中对应的inode的比特位由1置为0,再将inode对应的block块的比特位由1置为0;
2.删除文件所在目录block区中inode和文件名的对应关系。

猜你喜欢

转载自blog.csdn.net/qq_39295755/article/details/81071953