摘要不等于元素之和

时间:2019-05-29 13:31:52

标签: filesize du

该目录包含普通目录中的普通文件,没有符号链接和远程fs(它实际上是maildir ++的存储,因此甚至不希望有稀疏文件)。我不容易发现目录大小的摘要有可能比du所提供的总数大

$ du * .[a-zA-Z]* -bsc | tail -n1
2722800257      total

$ du * .[a-zA-Z]* -b | awk '{sum+=$1} END {print sum}'
3341577554

现实似乎与更大的数字匹配。

1 个答案:

答案 0 :(得分:0)

您的第二个命令du -b ... | awk ...高估了总数,因为它多次计算子目录的大小。每个子目录的大小都是自己计算的,然后再计入其每个祖先目录的大小。

在像这样的小例子中,在一个空目录占用4KB的文件系统上,更容易看到正在发生的事情:

$ mkdir -p foo/bar/baz

$ du -bsc foo
12288   foo
12288   total

$ du -b foo
4096    foo/bar/baz
8192    foo/bar
12288   foo

$ du -b foo | awk '{t += $1} END {print t}'
24576