![文件夹大小 du、ls](https://linux22.com/image/143224/%E6%96%87%E4%BB%B6%E5%A4%B9%E5%A4%A7%E5%B0%8F%20du%E3%80%81ls%20.png)
有人可以解释一下文件夹的大小吗?文件夹仅包含 1 个 360Gb 大小的文件。 ls 和 du 显示使用 440Gb
[root@liz DECSC]# ls -lha
total 440G
drwxrwxr-x 2 geo geo 4.0K Dec 6 19:56 .
drwxrwxr-x 14 geo geo 20K Dec 6 19:39 ..
-rwxrwxrwx 1 geo geo 360G Apr 8 2018 vor_gainzp2.dat
[root@liz DECSC]# du -hs
440G .
[root@liz DECSC]#
答案1
听起来这是在具有直接块分配而不是扩展的文件系统上,例如 ext3。
这意味着每个数据块在表中(在索引节点中)都有一个条目。前 12 个条目是直接块,即直接指向数据块。下一个条目是间接块,它指向同样包含块号的块。第 13 块是双重间接块,第 14 块是三重间接块。
所有这一切意味着,对于大型文件(例如 370GB 文件),寻址所有数据块涉及大量块。这可能就是差异的来源;du
考虑到全部块,而不仅仅是数据块。ls
显示文件大小,但再次显示目录中的总空间以及所有已使用的空间,而不仅仅是数据块。
对于较大的文件,我不建议使用 ext3,当然也不建议使用 ext2。使用现代的基于范围的文件系统,例如 ext4。对于基于盘区的文件系统,块被索引为“第一个块位于 3874,这扩展了 342 个块”,并且根据需要添加更多盘区。通过这种方式,仅使用两个数字就可以找到许多块。这不仅更加节省空间,而且速度也快得多,因为不需要加载所有这些额外的块。