为什么Linux空目录是4k大小
目录
由这个问题还可以衍生出一个问题
为什么文件(一切皆文件,包括目录也是一个文件)大小的单位都是4k的倍数?
要解决这个文件首先我们需要搞清楚Linux的VFS
虚拟文件系统和inode
机制,以及Linux操作系统是如何管理磁盘的如何从磁盘读写数据的
Linux为了提高读写磁盘的效率,将磁盘分割为一个个4k的块,然后以块为单位读写。操作系统会在inode中设置文件数据保存的块的索引,读取的时候再以块为单位读取到内存
所以一个文件大小的单位都可以被4k
整除,因为操作系统会按磁盘块来进行申请空间
为什么空的普通文件大小为
0k
而空目录文件大小为4k
?
因为一个新创建的目录下会保存.
和..
这两个目录
- 一个是到当前目录的目录项
- 一个是到上一层目录的项
所以任何一个新的目录初始的大小一定是4k
开始