【发布时间】:2018-03-08 09:42:53
【问题描述】:
我经常使用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应该不会真正导致结果的变化,只是大小格式。
您能帮我理解为什么会发生这种情况吗?
【问题讨论】:
-
它确实只改变尺寸格式。但是
sort -nr和head -n 5会给你不同的线路。当你使用du -h时,你应该使用sort -h。 -
只需将排序中的“-n”替换为“-h”即可。应该这样做:
sudo du -ah / | sort -hr | head -n 5 -
Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Super User 或Unix & Linux Stack Exchange 会是一个更好的提问地点。
标签: linux shell command-line du