目录

为什么Linux空目录是4k大小

目录

由这个问题还可以衍生出一个问题

为什么文件(一切皆文件,包括目录也是一个文件)大小的单位都是4k的倍数?

要解决这个文件首先我们需要搞清楚Linux的VFS虚拟文件系统和inode机制,以及Linux操作系统是如何管理磁盘的如何从磁盘读写数据的

Linux为了提高读写磁盘的效率,将磁盘分割为一个个4k的块,然后以块为单位读写。操作系统会在inode中设置文件数据保存的块的索引,读取的时候再以块为单位读取到内存

所以一个文件大小的单位都可以被4k整除,因为操作系统会按磁盘块来进行申请空间

为什么空的普通文件大小为0k而空目录文件大小为4k

因为一个新创建的目录下会保存...这两个目录

  • 一个是到当前目录的目录项
  • 一个是到上一层目录的项

所以任何一个新的目录初始的大小一定是4k开始