«

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 /

常见坑

  1. du 统计的是目录内文件实际占用,和 df 已用空间有差异(含保留块、删除未释放)。
  2. 扫整个根目录很慢,先用 --max-depth=1 逐级缩小。
  3. -s 给汇总,不带 -s 会逐文件列出,输出爆炸。
  4. sort -rh 才是按人类单位正确降序。
  5. 挂载点目录会把子挂载也算进来,加 -x 排除。
  6. 权限不足的目录报错,前面加 sudo。
  7. 硬链接同一文件重复统计,加 -l 控制。

总结

du -sh 看目录总占用,--max-depth=1 + sort -rh 逐级下钻找大目录,find -size 定位大文件。df 看整盘、du 看目录,两者分工。从根逐级缩小范围,先定位大目录再清理,避免盲目删文件。

遇到问题加QQ23979811 协助处理

标签: Linux 磁盘占用 du 目录大小