为什么“du -b”显示的大小与文件浏览器中“右键单击”⇒“属性”的大小不同?

为什么“du -b”显示的大小与文件浏览器中“右键单击”⇒“属性”的大小不同?

命令

du -b /home/user/directory

显示的文件大小与在同一目录上手动“右键单击”并在常见文件浏览器中选择“属性”显示的文件大小完全不同,例如鹦鹉螺,PCManFM,Windows资源管理器或其他。


请求文件大小的示例:

  • 通过文件浏览器:“右键点击“ ⇒ ”特性目录上的“显示(实际)文件大小为 8.141.120 字节。另一方面,使用的磁盘空间为 8.155.136 字节,并且稍高一些(由于碎片等)。
  • Via du -b:显示莫名其妙的大小8.145.216字节(这既不是表观大小,也不是之前使用文件浏览器的方法所使用的磁盘空间)。

我已经知道du-命令将显示已使用的磁盘空间而不是目录的表观大小。人们du -b可以更改默认行为以显示表观(实际)尺寸。尽管如此,在“特性”,实际大小以及使用的磁盘空间与提到的输出完全不同du -b


这是什么原因呢?如果我想显示真实的(表面的)文件或目录大小,我必须使用哪个 CLI 命令其值与文件浏览器中显示的值完全相同通过 ”右键点击“ ⇒ ”特性“?

我之所以这么要求,是因为我想创建一些简单的 bash 脚本来比较执行备份后 HDD1 和 HDD2 上内容的实际大小。这应该在尽可能高的位精度内进行比较。在这种情况下,比较已用磁盘空间没有意义,因为两个驱动器上的磁盘空间非常不同。

答案1

8,145,216 字节和 8,141,120 字节之间的差异是 4,096 字节,正好是 4kB。在 ext4 中,目录以 4kB 的块存储,这表明示例中的目录具有相对较少的文件数量,并且没有子目录。

du在其输出中包含这 4kB,而根据我自己的测试,文件管理器(如 Nautilus)似乎没有。

相关内容