游乐游手机版
首页/系统平台/文章详情

Linux查看磁盘使用分布的常用方法与命令

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

ncdu 是一款交互式磁盘空间分析工具,能够逐层下钻定位占用空间较大的目录,支持键盘导航、实时排序以及删除确认。它底层基于 du 实现,但在实际排查磁盘占用时大幅简化了操作流程,非常适合 Linux 磁盘使用分析。

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 显示的数据不完全一致。

dfdu 结果不一致时怎么办

常见情况是:某个分区执行 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/dockerdu 排查往往效果有限——必须结合对应生态的专用命令,才能真正找出那部分“消失”的磁盘空间来源。

来源:https://www.php.cn/faq/2942846.html
上一篇Linux系统序列号怎么查看及查询方法 下一篇Linux如何查看共享内存大小及使用情况
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
VMware安装Ubuntu完整教程:创建虚拟机与启动验证
系统平台 · 2026-09-01

VMware安装Ubuntu完整教程:创建虚拟机与启动验证

本教程详细演示如何在VMware中创建Ubuntu虚拟机,涵盖ISO挂载、硬件配置、安装向导及启动验证。通过清晰的步骤与验证命令,帮助新手快速搭建可用的Linux学习环境。

Win10专业版U盘安装教程:制作启动盘与完整安装步骤
系统平台 · 2026-09-01

Win10专业版U盘安装教程:制作启动盘与完整安装步骤

本文提供Win10专业版U盘安装完整流程:准备8GB以上U盘与官方镜像,制作启动盘并核对盘符;通过F12 F11 Esc等快捷键或BIOS设置U盘为第一启动项;安装时选择专业版并谨慎分区;完成后在“设置—系统—关于”验证版本与激活状态。操作前务必备份数据。

Windows10系统字体太小怎么调大
系统平台 · 2026-08-27

Windows10系统字体太小怎么调大

Windows10系统字体太小怎么调大?只需两步:首先打开设置中的显示选项,将缩放比例调整为125%或150%;随后运行ClearType文本调谐器优化字体清晰度。此方法适用于高分屏及普通屏幕,无需修改注册表即可解决界面拥挤问题。

Win10磁盘占用100%基础排查:从监控到清理的完整步骤
系统平台 · 2026-08-27

Win10磁盘占用100%基础排查:从监控到清理的完整步骤

Windows 10系统出现磁盘占用100%会导致电脑卡顿、程序响应缓慢。本文提供基础排查方案:首先通过任务管理器确认是否为磁盘高负载,随后进入系统存储页面分析C盘占用类别,最后针对性清理临时文件。遵循此流程可有效缓解磁盘压力,避免盲目重装系统。

Windows10系统怎么显示此电脑和控制面板
系统平台 · 2026-08-27

Windows10系统怎么显示此电脑和控制面板

Windows10默认可能不显示桌面图标,导致找不到“此电脑”和“控制面板”。只需进入个性化设置,在“桌面图标设置”中勾选对应选项即可恢复。本文提供详细图文步骤,帮助快速找回系统入口。