为什么空文件不分配任何磁盘空间?

为什么空文件不分配任何磁盘空间?

我已经打开Ubuntu 20.04.5,我的文件系统是ext4.我创建一个空文件并检查其分配的大小:

➜  touch test_file
➜  ls -s
total 0
0 test_file

然后,我将一个字符回显到文件中,并再次检查其分配的大小:

➜  echo "." > test_file
➜  ls -s
total 4
4 test_file

我知道 4kb 是我的文件系统的块大小。但是当我写入文件时,该文件发生了什么?为什么之前没有分配空间?

答案1

因此ext4,其中没有任何数据,唯一存在的信息是文件名test_file、权限以及存储在目录数据中的所有者和组。 inode 包含有关文件实际大小的信息,该信息在创建后为零,在追加后为 4K .

在数据写入实际文件之前,它不会使用磁盘上的任何块来存储数据。这就是为什么空文件在写入后显示为0“但是”的原因。4K

将其视为您家的地址。地址只是州、城市、地区、邮局和其他人了解其位置的一种方式。它不提供有关您房屋内部情况的任何信息,例如面积、房间、电器等或内部情况。这实际上就是文件名。

相关内容