文件夹大小 du、ls

文件夹大小 du、ls

有人可以解释一下文件夹的大小吗?文件夹仅包含 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 个块”,并且根据需要添加更多盘区。通过这种方式,仅使用两个数字就可以找到许多块。这不仅更加节省空间,而且速度也快得多,因为不需要加载所有这些额外的块。

相关内容