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