WSL Ubuntu中1字节文件占用8个4096字节块的疑问
问题解答
你的问题根源是WSL的主目录实际存放在Windows的NTFS分区上,不是原生的Linux文件系统(比如ext4),两者的磁盘空间分配逻辑完全不一样:
- NTFS用「簇」作为空间分配的最小单位,哪怕文件只有1字节,也会给它分配一整个簇的空间。如果你的Windows分区簇大小是32KB(也就是32768字节),那这个小文件实际占了32KB的磁盘空间。
stat命令在这里是把NTFS的簇大小按Linux标准的4096字节逻辑块来换算:32768 ÷ 4096 = 8,所以就显示成了占用8个块。
要是想验证你预期的「1个块」的情况,去WSL里的原生Linux文件系统目录(比如/tmp)测就行:
echo -n "a" > /tmp/file_size_test.txt stat /tmp/file_size_test.txt
这时候你就能看到文件只占用1个4096字节的块,符合你原本的预期。
内容的提问来源于stack exchange,提问作者yossi-matkal
相关产品推荐
相关产品推荐

