Linux基础篇之目录与文件
2021/8/28 7:37:42
本文主要是介绍Linux基础篇之目录与文件,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
对于磁盘而言,最小单位是sector,多个sector组成了一个block, block译作中文"块",
一般情况下:
1 sector = 512 bytes = 0.5 K
8 sector = 4K = 1block
inode = 128 or 256 bytes
块里面存放了文件数据,但是文件的元数据也需要记录,记录元数据的块叫inode
inode有以下数据:
- 文件的字节数。
- 文件拥有者的User ID。
- 文件的Group ID。
- 文件的读、写、执行权限。
- 文件的时间戳,共有三个:ctime指inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime指文件上一次打开的时间。
- 链接数,即有多少文件名指向这个inode。
- 文件数据block的位置。
除了文件名以外的所有文件信息,都存在inode之中,那么文件名放在哪里呢?
在<unxi高级系统编程>一书中, 对此有详细的解释
图片1解释:1个磁盘分成了很多分区,每个分区可以做不同的文件系统,文件系统内部又分了i节点和数据块等。
这张图解释了为什么硬链接不能跨区,因为硬链接依赖于文件系统而存在, 而文件系统依赖于分区而存在。
图片2解释:数据块由文件块和目录块组成,只有两项重要数据存放在目录块中:文件名和i节点编号,同时i节点编号又指向了i节点,i节点再指向文件块。
这张图解释了为什么取消硬链接不会释放磁盘空间,因为只是删除了指向i节点的指针。
也解释了给文件重命名时,文件的存储位置并不会发生变化,只是新构建了指向已有i节点的新目录块,并删除了旧的目录块。
图片3解释:在目录中新建目录testdir后的变化,对于testdir的父目录来说,有3个链接指向不同的inode,对于testdir来说,有2个链接指向不同的inode,二者指向的inode有重叠部分。
图片3解释了对于一个目录来说,至少有2个链接,分别是点和点点。如果目录下面还有子目录, 链接数会增加.
上述三个图可以说明的是:
无论是目录还是文件,最终都会落到数据块中.
dentry用来记录文件的名字、索引节点指针以及与其他目录项的关联关系。多个关联的目录项,就构成了文件系统的目录结构, 是由内核维护的一个内存数据结构,不同于数据块中的目录块, 但是有关系。
这篇关于Linux基础篇之目录与文件的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-12如何创建可引导的 ESXi USB 安装介质 (macOS, Linux, Windows)
- 2024-11-08linux的 vi编辑器中搜索关键字有哪些常用的命令和技巧?-icode9专业技术文章分享
- 2024-11-08在 Linux 的 vi 或 vim 编辑器中什么命令可以直接跳到文件的结尾?-icode9专业技术文章分享
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南
- 2024-08-21【Linux】分区向左扩容的方法