Chi du:du命令显示什么 (linux du -h)

我有一个普通的文件夹,所以当我右键单击时,转到属性并检查其数据大小,它给出 37.3 KB。但是当我使用 du 命令时,它显示 104KB

这两个人不应该给出相同的答案吗?

3

重要的是要注意,在计算目录的大小时,硬链接很重要。指向同一文件的两个硬链接不会占用更多的磁盘空间并共享 inode 号(根据定义),但是简单的文件大小计数将以双倍计数。

至少有一个 GNU du 的开关:

   -l, --count-links
          count sizes many times if hard linked
1

du 命令递归地下降所有目录和子目录,并始终为您提供包含在任何地方的总数。

GUI 中的属性选项卡并不总是这样做。有时会有一个复选框 (在那里,或者在一些其他首选项对话框中) 控制文件夹大小是递归计算的,还是只给你顶层。有时,即使 UI 尝试递归计算大小,也需要一段时间来更新它,所以它可能会在一段时间内显示一个较小的临时数字,直到它完成完整的递归搜索。

所以这并不奇怪,如果 UI 给出一个较小的数字。

0

@Steve Summit的答案以及后续评论忽略了一些有助于理解问题的有用信息:

一个简单的ls -ls不会显示hidden子目录。

您应该看到使用ls -las的任何隐藏子目录的名称。

要以递归方式查看它们的大小,请添加-R选项。

显示内容的更好方法是使用find . -ls,它显示子目录。

在这两种情况下,du显示块,其中包含“许多”字节

POSIX 的 blocksize 的措辞(见rationale in ls)说,-s的结果在实现上有所不同(例如,有些可能显示 1024):

此标准的早期版本没有-k 选项,这意味着-s 选项不能可移植地使用,因为它的块大小是实现定义的,并且用于指定目录中文件占用的块数的单位在 ls-l 列表中固定为 512 字节单位。

另一方面,du的标准说它应该是 512 字节的单位,就像ls -l

要解决缺少的空间,请执行以下操作:

如果你有很多非常小的文件,它们可以使用比块数少得多的字节。

同样,您可能有隐藏的文件,这些文件没有在问题中说明。

最后,某些属性对话框可能只显示文件。目录也占用空间。

顺便说一句,find-ls选项在标准中仅在rationale中提到。但是它适用于 Linux。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(505)
Cxp采集卡:用于linux的VGA采集卡
上一篇
Linux服务器ip地址查询:PythonDNS服务器IP地址查询
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(81条)