Linux查看磁盘使用分布的常用方法与命令
ncdu 是一款交互式磁盘空间分析工具,能够逐层下钻定位占用空间较大的目录,支持键盘导航、实时排序以及删除确认。它底层基于 du 实现,但在实际排查磁盘占用时大幅简化了操作流程,非常适合 Linux 磁盘使用分析。想直接查看目录级别的磁盘使用分布,就别只盯着 df 的总容量输出——它只能告诉你“磁盘
ncdu 是一款交互式磁盘空间分析工具,能够逐层下钻定位占用空间较大的目录,支持键盘导航、实时排序以及删除确认。它底层基于 du 实现,但在实际排查磁盘占用时大幅简化了操作流程,非常适合 Linux 磁盘使用分析。

想直接查看目录级别的磁盘使用分布,就别只盯着 df 的总容量输出——它只能告诉你“磁盘快满了”,却不会告诉你“到底是哪个目录占满了空间”。
用 du 定位大目录
du 是 Linux 中少数能够精准回答“/var/log 占了 12G”或“/home/user/downloads 占了 87G”这类问题的命令工具。它通过递归统计指定路径下所有文件和目录的大小来工作,但默认输出通常较为杂乱,需要结合参数使用,才能更高效地查看磁盘占用情况。
du -sh /path:快速查看单个目录总大小(-s表示汇总,-h表示以易读格式显示)du -sh /var/* | sort -hr | head -10:列出/var目录下占用空间最大的前 10 个子目录(sort -hr按可读数值倒序排列)du -sh /home/* 2>/dev/null | sort -hr:跳过权限不足产生的报错(2>/dev/null),避免影响排序结果
需要注意的是:du 统计的是文件的实际占用空间,而不是磁盘块的分配情况;如果目录中包含大量硬链接或稀疏文件,那么统计结果可能会与 df 显示的数据不完全一致。
df 和 du 结果不一致时怎么办
常见情况是:某个分区执行 df -h 后显示已使用 95%,但把所有目录用 du -sh 统计后加起来却只有 70%。这种情况大概率是“文件已删除但空间未释放”导致的——相关进程仍然占用文件句柄,磁盘空间并没有真正回收。
- 查找已删除但仍被占用的文件:
lsof +L1(通常需要 root 权限,+L1表示 link count = 0) - 定位具体进程:
lsof +L1 | grep deleted - 释放方式:重启对应进程,或结束进程后再清理(例如日志服务可用
kill -USR1触发重新打开文件)
另一个常见干扰因素是 ext4 的 reserved blocks(默认约 5%),df 会把这部分计入“已用空间”,但普通用户实际上无法使用,而 du 也不会统计进去——这并不是统计错误,而是文件系统的设计机制。
用 ncdu 交互式钻取
当你需要逐层深入排查某个可疑目录(比如 /var)时,ncdu 往往比手动组合多个 du 命令更高效,它可以理解为带交互界面的 du 增强版,是 Linux 查看磁盘空间分布的实用工具。
- 安装:
sudo apt install ncdu(Debian/Ubuntu)或sudo yum install ncdu(RHEL/CentOS) - 运行:
ncdu /var,进入后使用方向键导航,按Enter进入子目录,按d删除选中项(请谨慎操作) - 优势:支持实时刷新、鼠标操作,并可自动忽略如 .git、.cache 等常见无意义目录(支持配置)
它底层依然调用 du,但省去了反复输入命令、记忆路径以及手动计算大小的麻烦——特别适合排查目录层级深、结构复杂的磁盘占用问题。
别漏掉 tmpfs 和容器卷
很多看起来像是“凭空消失”的磁盘空间,其实并不真正落在物理磁盘本体上:例如 tmpfs 这类基于内存的虚拟文件系统、Docker 的 overlay2 卷、Kubernetes 的 emptyDir,都会出现在 df 输出里,但当你使用 du 扫描目录时,却未必能直接找到它们真实对应的承载位置。
- 识别 tmpfs:
df -T | grep tmpfs,这类挂载点显示的大小通常对应内存容量,du对它们的统计往往为 0 - 查看 Docker 卷:
docker system df -v,可检查 volumes 占用情况;清理方式:docker volume prune - 查看 Kubernetes:
kubectl top pods --containers配合df检查节点挂载点,容器内路径映射关系还需要结合describe pod一起分析
在这些场景下,一味盯着 /var/lib/docker 用 du 排查往往效果有限——必须结合对应生态的专用命令,才能真正找出那部分“消失”的磁盘空间来源。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
Linux如何查找7天前修改过的文件
-mtime +7 这个参数在 Linux 文件查找场景中经常被误解。它真正匹配的是修改时间超过 7 个完整 24 小时周期的文件,也就是 8 天及以上的文件。换句话说,它会筛选出 2026-06-30 及更早修改的文件,而不是很多人理解的“7天前文件”。由于 find 命令的时间计算采用向下取整方
Linux如何查看共享内存大小及使用情况
很多人会把 free 命令中的 shared 字段误认为是 Linux IPC 共享内存大小,其实这是一个非常常见的理解偏差。这个字段真正反映的,是 tmpfs 挂载点(例如 dev shm)所占用的内存情况,并不包含通过 ipcs -m 查看的 System V 共享内存段。那么,Linux 怎
Linux查看磁盘使用分布的常用方法与命令
ncdu 是一款交互式磁盘空间分析工具,能够逐层下钻定位占用空间较大的目录,支持键盘导航、实时排序以及删除确认。它底层基于 du 实现,但在实际排查磁盘占用时大幅简化了操作流程,非常适合 Linux 磁盘使用分析。想直接查看目录级别的磁盘使用分布,就别只盯着 df 的总容量输出——它只能告诉你“磁盘
Linux系统序列号怎么查看及查询方法
在 Linux 中查看物理服务器序列号,最快捷的方法通常是直接读取 sys class dmi id product_serial。普通用户一般无需 root 权限;如果返回为空,通常说明 BIOS 固件没有填写该字段;如果出现报错,则多半与内核限制或 SELinux 安全策略有关。直接读 sy
苹果电脑录屏帧率怎么设置fps与清晰度
苹果电脑自带的录屏工具帧率默认锁定为 30fps,且系统本身不支持直接修改。如果你想在 Mac 录屏时自定义帧率,需要借助 OBS Studio(可在“输出→录制”中设置)或优加蛙这类第三方录屏软件(可在“视频设置”中拖动滑块调整)。苹果电脑录屏时如果想调节画面流畅度,核心就在于设置帧率(FPS)。
- 热门数据榜
相关攻略
2026-08-18 17:57
2026-08-18 17:55
2026-08-18 17:54
2026-08-18 17:54
2026-08-18 17:47
2026-08-18 17:47
2026-08-18 17:47
2026-08-18 17:39
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程

