[svc]ext4文件删除&访问原理

Posted 毛台

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[svc]ext4文件删除&访问原理相关的知识,希望对你有一定的参考价值。

文件名信息存放在哪里?

LINUX的文件名是存在父目录的block里面,并指向这个文件的inode节点,这个文件的inode节点再标记指向存放这个文件的block的数据块。我们删除一个文件,实际上并不是清楚inode节点和block的数据。只是在这个文件的父目录里面的block删除这个文件的名字,从而使这个文件名消失,并且无法指向这个文件的 inode节点,当没有文件名指向这个inode节点同时没有进程调用的时候,这个inode和下面的block是无主的。在磁盘检查或者有内容写入的时候会是否释放inode节点和存放这个文件的数据块,并更新inodeMAP和blockMAP今后让这些位置存放其他文件数据。

文件的访问(读取)

企业面试题: 请从linux文件系统角度详细描述读取文件过程

扩展知识:读取文件的原理过程


读取/tmp/text.txt的过程如下:
1.首先查根目录/ inode 信息,然后查找到根目录的block
2.在根的 block 信息里查找到/tmp的目录名,进而找到/tmp的inode 
3.然后找到/tmp的block信息,查找到 text.txt的文件名、inode信息与权限属性信息
4.进而查找到文件的 block信息而读取到文件的内容

文件的删除

被删除的条件: inode0 && icount0
企业案例-磁盘满了

我为何要理解这玩意, 牵扯到linux权限, 删除一个目录下的文件, 操作对象有 父目录的inode+文件的inode

以上是关于[svc]ext4文件删除&访问原理的主要内容,如果未能解决你的问题,请参考以下文章

linux删除原理

[svc]共享内存

EXT4中恢复使用rm命令误删除的文件

在 IIS 中访问 .svc 文件时出现 HTTP 404

创建一个缓存文件,当libc(所有文件系统)或ext4中的分区快满时自动删除?

在CentOS6或RHEL6恢复上ext4文件系统误删除的文件