Linux查看当前目录占用大小du -sh命令
时间:2026-11-15 07:09 作者:emer 分类: Linux
前言
排查磁盘占用时,要快速判断哪个目录最占空间。df 看整盘剩余,du 看目录实际占用,du -sh 给当前目录一个汇总大小,是定位大目录的第一步。本文讲解 du -sh、逐级下钻、排序找最大目录和与 df 的区别。
操作步骤
1. 查看当前目录总占用
du -sh
-s 汇总,-h 人类可读单位。
2. 查看指定目录大小
du -sh /var/log
3. 列出一级子目录各自大小并排序
du -sh /* | sort -rh | head
4. 只看当前层子目录并降序
du -h --max-depth=1 . | sort -rh
5. 找出大文件
find /var -type f -size +100M -exec du -h {} \;
6. 忽略挂载点避免重复统计
du -sh -x /
常见坑
- du 统计的是目录内文件实际占用,和 df 已用空间有差异(含保留块、删除未释放)。
- 扫整个根目录很慢,先用 --max-depth=1 逐级缩小。
- -s 给汇总,不带 -s 会逐文件列出,输出爆炸。
- sort -rh 才是按人类单位正确降序。
- 挂载点目录会把子挂载也算进来,加 -x 排除。
- 权限不足的目录报错,前面加 sudo。
- 硬链接同一文件重复统计,加 -l 控制。
总结
du -sh 看目录总占用,--max-depth=1 + sort -rh 逐级下钻找大目录,find -size 定位大文件。df 看整盘、du 看目录,两者分工。从根逐级缩小范围,先定位大目录再清理,避免盲目删文件。
遇到问题加QQ23979811 协助处理