![](/img/trans.png)
[英]Why “find . -print0 | xargs -r0 du -chx” and “du -chx” different results?
[英]Why does du give different results?
我经常使用du
命令。 最近,我用它在服务器的根目录中找到了5个最重的文件,我使用了以下命令:
sudo du -ah / | sort -nr | head -n 5
结果是:
1016K /var/cache/apt/archives/fonts-dejavu-core_2.35-1_all.deb
1016K /bin/bash
1008K /usr/src/linux-aws-headers-4.4.0-1052/fs
1008K /usr/src/linux-aws-headers-4.4.0-1049/fs
1004K /var/awslogs/lib/python2.7/site-packages/botocore/data/ec2/2016-09-15/
然后,我删除了-h,并观察到了完全不同的结果:
sudo du -a / | sort -nr | head -n 5
结果:
2551396 /
1189240 /usr
894000 /var
541836 /usr/lib
406276 /var/lib
在du
的man
页中,
-h, --human-readable
print sizes in human readable format (e.g., 1K 234M 2G)
根据我的理解,包括-h
或不包括-h
不应真正导致结果更改,仅引起大小格式变化。
您能帮我理解为什么会这样吗?
sort
命令不考虑K / M / G,而是在所有“ M”之前对所有“ K”进行排序。
1016K
在数值上大于2M
。 sort -n
仅提取1016
和2
。
如果您的排序支持,请尝试sort -h
。
也许蒙山-h
你的目录大小是像2G
或4G
,同时文件保持1016K
或1008K
,和2
小于1016
,因此目录得到整理到列表的末尾。
如果没有-h
,则目录(实际上是目录树)的总大小显然会大于内部文件的大小,因此目录会排在列表的顶部。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.