当前位置: 首页
系统平台
Linux查看磁盘使用分布的常用方法与命令

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

热心网友 时间:2026-08-18
转载

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

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
Linux如何查找7天前修改过的文件

Linux如何查找7天前修改过的文件

-mtime +7 这个参数在 Linux 文件查找场景中经常被误解。它真正匹配的是修改时间超过 7 个完整 24 小时周期的文件,也就是 8 天及以上的文件。换句话说,它会筛选出 2026-06-30 及更早修改的文件,而不是很多人理解的“7天前文件”。由于 find 命令的时间计算采用向下取整方

时间:2026-08-18 17:57
Linux如何查看共享内存大小及使用情况

Linux如何查看共享内存大小及使用情况

很多人会把 free 命令中的 shared 字段误认为是 Linux IPC 共享内存大小,其实这是一个非常常见的理解偏差。这个字段真正反映的,是 tmpfs 挂载点(例如 dev shm)所占用的内存情况,并不包含通过 ipcs -m 查看的 System V 共享内存段。那么,Linux 怎

时间:2026-08-18 17:55
Linux查看磁盘使用分布的常用方法与命令

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

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

时间:2026-08-18 17:54
Linux系统序列号怎么查看及查询方法

Linux系统序列号怎么查看及查询方法

在 Linux 中查看物理服务器序列号,最快捷的方法通常是直接读取 sys class dmi id product_serial。普通用户一般无需 root 权限;如果返回为空,通常说明 BIOS 固件没有填写该字段;如果出现报错,则多半与内核限制或 SELinux 安全策略有关。直接读 sy

时间:2026-08-18 17:54
苹果电脑录屏帧率怎么设置fps与清晰度

苹果电脑录屏帧率怎么设置fps与清晰度

苹果电脑自带的录屏工具帧率默认锁定为 30fps,且系统本身不支持直接修改。如果你想在 Mac 录屏时自定义帧率,需要借助 OBS Studio(可在“输出→录制”中设置)或优加蛙这类第三方录屏软件(可在“视频设置”中拖动滑块调整)。苹果电脑录屏时如果想调节画面流畅度,核心就在于设置帧率(FPS)。

时间:2026-08-18 17:54
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全