有人可以解释文件夹大小吗?文件夹仅包含 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]#
听起来这是在具有直接块分配而不是扩展区的文件系统上,例如 ext3。
这意味着每个数据块在表中(inode 中)都有一个条目。前 12 个条目是直接块,即直接指向数据块。下一个条目是一个间接块,它指向一个再次包含块号的块。第 13 块是双重间接块,第 14 块是三重间接块。
所有这一切意味着,对于诸如 370GB 文件之类的大文件,在寻址所有数据块时涉及大量块。这可能就是差异的来源;
du
考虑所有块,而不仅仅是数据块。ls
显示文件大小,但目录中的总空间再次显示所有已用空间,而不仅仅是数据块。对于较大的文件,我不建议使用 ext3,当然也不建议使用 ext2。使用现代的基于范围的文件系统,例如 ext4。对于基于范围的文件系统,这些块被索引为“第一个块在 3874 处,这扩展了 342 个块”,并且根据需要添加更多的范围。通过这种方式,只需使用两个数字就可以找到许多块。这不仅更节省空间,而且速度也更快,因为不需要加载所有这些额外的块。