我有一个普通文件夹,因此当我右键单击时,转到属性并检查其数据大小,它给出了37.3KB。 但是当我使用du命令时,它显示104KB
这两个不应该给出相同的答案吗?
答案 0 :(得分:3)
值得注意的是,硬链接在计算目录大小时很重要。同一文件的两个硬链接不占用更多磁盘空间并共享inode编号(根据定义),但简单的文件大小计数将以双倍计算。
这至少转换为GNU du:
-l, --count-links
count sizes many times if hard linked
答案 1 :(得分:1)
du命令以递归方式下降所有目录和子目录,并始终为您提供包含在下方任何位置的总数。
GUI中的属性选项卡并不总是这样做。有时会出现一个复选框(在那里,或者在其他一些首选项对话框中),控制文件夹大小是递归计算还是只给你最高级别。有时,即使UI确实尝试递归地计算大小,它也需要一段时间才能更新它,因此它可能会暂时显示一个较小的临时数字,直到它完成完整的递归搜索。
因此,如果UI提供较小的数字,那就不足为奇了。尝试为此找到UI首选项。
答案 2 :(得分:0)
@ Steve Summit的回答以及后续评论忽略了一些有用的信息来理解问题:
ls -ls
将不会显示隐藏的子目录。ls -las
。-R
选项。find . -ls
,它会显示子目录。du
都会显示包含“很多”字节的块ls
)表示-s
的结果在各实现之间有所不同(例如,有些可能显示1024):
此标准的早期版本没有-k选项,这意味着-s选项无法移植使用,因为其块大小是实现定义的,并且用于指定文件占用的块数的单位在ls -l列表中的目录中修复为512字节单位。
du
的标准表示它应该是512字节单位,就像ls -l
一样。考虑到缺失的空间:
顺便说一下,标准中仅在rationale中提到了-ls
的{{1}}选项。但它适用于Linux。