`du -b` 显示的大小与 `ls` 不同

And*_*eKR 5 ls filesystems disk-usage

我有一个包含几百个文件的目录(真实文件,没有符号链接,没有子目录)。

当我ls -la在 Excel 中使用和总结大小时,我得到287190字节(?)。

当我使用du -bdu --apparent-size --block-size=1我得到422358字节(?)。

我以为这两个意思是一样的,为什么不同?

Edw*_*uck 6

du 给出磁盘使用情况,这与所有文件大小的总和不同。

例如, adu -b file将给出与创建目录“dir”不同的输出,将相同的文件放在“dir”中并执行du -b dir. 在我的系统上,目录的“开销”有 30 个额外的字节。根据目录的内容,我想目录大小会改变(但如果它是完全线性的,我会感到惊讶)。

此外,差异的相对大小意味着您可能错过了一个包含相当多文件的隐藏目录,或者您可能错过了很多隐藏文件(即使您确实使用了 -a 标志)。

此外,如果一个工具遵循它们而另一个工具不遵循它们,则可能存在会导致差异的符号链接。

最后,对于某些文件系统,如果文件的内容足够小,它们可能会被内联到文件系统 INode 中,并且对于许多文件系统,即使该块没有被完全使用,也会保留一个块来保存文件的内容. 在尝试比较两者时,这些变化会增加额外的噪音。