soarli

告别“磁盘空间不足”:Ubuntu系统查找与清理大文件/大目录的终极指南
无论你是管理着一台高并发的生产服务器,还是将 Ubuntu 作为日常办公的桌面系统,相信你一定遇到过这个令人抓狂的...
扫描右侧二维码阅读全文
26
2026/04

告别“磁盘空间不足”:Ubuntu系统查找与清理大文件/大目录的终极指南

无论你是管理着一台高并发的生产服务器,还是将 Ubuntu 作为日常办公的桌面系统,相信你一定遇到过这个令人抓狂的报错——“No space left on device”(设备上没有空间)。

磁盘空间被悄无声息地吞噬,系统开始变得卡顿,甚至连简单的软件更新都无法完成。这个时候,盲目地乱删文件不仅效率低下,还极易导致系统崩溃。我们需要的是一套精准排查的“组合拳”。

今天,我将为大家详细梳理在 Ubuntu 系统中查找、定位并清理空间占用大户的 4 种终极方法。无论你是命令行极客,还是喜欢可视化操作的新手,都能在这里找到最适合你的工具。


方法一:回归纯粹,使用内置的 du 命令(免安装,随时可用)

在没有任何第三方工具的裸机环境下,Linux 自带的 du (Disk Usage) 命令结合 sort 命令,是我们最可靠的战友。这个方法不仅高效,而且不需要你拥有外网连接去下载任何包。

核心实战命令:

打开终端,输入以下命令即可快速查看当前目录下占用空间最大的前 10 个文件或文件夹:

sudo du -ah -d 1 | sort -rh | head -n 10

为什么这行命令如此强大?我们来拆解一下:

  • sudo:这非常关键。系统级目录(如 /var/root)往往隐藏着巨大的日志文件,没有 root 权限,du 命令会满屏报错“权限不够”,导致统计结果严重失真。
  • du -ah -d 1:这是信息采集环节。-a 确保文件和目录都不被遗漏;-h 贴心地将字节转换成了人类易读的 K、M、G 单位;-d 1 (即 max-depth=1) 则是限制了扫描深度,防止输出成千上万行难以阅读的层级细节。
  • sort -rh:这是信息整理环节。-r 表示降序排列(大文件排在最前),而 -h 则是一个极其聪明的参数,它能读懂前面 du 输出的 M 和 G,知道 1G 比 900M 大。
  • head -n 10:精简输出,只看“罪魁祸首”的前十名。

💡 进阶小贴士:
如果你想直接排查根目录或特定目录(比如疑点重重的 /var),只需稍微修改一下命令:sudo du -ah -d 1 /var | sort -rh | head -n 10


方法二:极客首选,终端里的瑞士军刀 ncdu(强烈推荐)

如果说 du 是静态的报告,那么 ncdu (NCurses Disk Usage) 就是动态的侦探雷达。对于需要经常维护服务器的开发者来说,ncdu 绝对是提升幸福感的利器。

它在终端内提供了一个半图形化的交互界面,你可以像使用文件管理器一样,一层一层地“钻”进目录里寻找大文件。

安装只需两步:

sudo apt update
sudo apt install ncdu

开启你的探索之旅:

sudo ncdu /

执行后,ncdu 会开始扫描你指定的目录(扫描根目录 / 可能需要耐心等待一两分钟)。扫描完毕后,奇迹出现了:

  1. 直观的条形图:每个目录和文件旁边都有大小标示和用 # 组成的条形图,谁占用的空间多一目了然。
  2. 极简的导航:使用键盘的 方向键选择,按下 Enter 键即可进入子目录,按下左方向键 < 返回上一级。
  3. 一键清理:当你发现了一个毫无用处的巨大 .tar.gz 备份文件时,无需退出软件,直接选中它按 d 键,确认后即可将其“就地正法”。

方法三:精准狙击,使用 find 命令揪出单个巨型文件

有时候,你的磁盘空间是被一两个疯狂生长的日志文件(比如 syslog 或失控的 Docker 容器日志)吃掉的。如果你不关心“目录”的大小,只想全盘搜索最大的单体文件find 命令是你的不二之选。

全盘搜索最大文件的“魔法指令”:

sudo find / -type f -printf "%s %p\n" | sort -rn | head -n 10 | awk '{print $1/1024/1024 " MB\t" $2}'

这串代码在做什么?

  • find / -type f:像猎犬一样从根目录出发,嗅探所有的普通文件(排除目录和软链接)。
  • -printf "%s %p\n":只提取两个关键信息:文件大小(以字节为单位)和文件的完整路径。
  • awk '{...}':最后一步的“美容”,将冷冰冰的字节数字除以两次 1024,转换成直观的 MB 格式并对齐输出。

(注:全盘扫描大型文件系统可能需要较长时间,请耐心等待终端返回结果。)


方法四:桌面用户的福音,图形化“磁盘使用情况分析器”

如果你正在使用 Ubuntu Desktop 版本(带有图形化桌面),那么你完全可以不碰命令行。Ubuntu 贴心地内置了一个绝佳的图形化工具,俗称 Baobab。

如何召唤它?

  1. 按下键盘上的 Win 键(在 Linux 中称为 Super 键),打开应用启动器。
  2. 在搜索框中输入 “磁盘使用情况分析器”Disk Usage Analyzer
  3. 点击运行。

功能亮点:
打开软件后,选择你要扫描的硬盘分区。它会生成令人惊艳的同心环形图树状图。环形图的面积越大、层级越靠外,代表该目录占用的空间越大。你只需动动鼠标,点击那些“臃肿”的色块,就能层层递进,直至找到源头,右键即可将其移至回收站。


🎁 彩蛋:找到了大文件,哪些是可以安全删除的?

排查出大文件只是第一步,千万不要乱删系统文件! 以下是 Ubuntu 系统中几个常见的“空间杀手”以及安全的清理方式:

  • APT 缓存垃圾 (/var/cache/apt/archives/):

    随着系统更新,这里会堆积大量旧的安装包。安全清理命令:`sudo apt autoremove && sudo apt clean`。
  • 膨胀的 Systemd 日志 (/var/log/journal/):

    日志文件很容易吃掉几个 G 的空间。可以限制日志保留的大小(例如限制为 100MB):`sudo journalctl --vacuum-size=100M`。
  • Docker 镜像与容器 (/var/lib/docker/):

    如果你用 Docker,废弃的镜像和停止的容器是吃盘大户。清理无用资源:`docker system prune -a`(执行前请确保了解其影响)。
    

总结

硬盘空间管理是每个 Linux 用户的必修课。喜欢极简与原生的你,请牢记 du 命令;追求效率与交互的你,请务必安装 ncdu;遇到极其隐蔽的巨型单体文件,让 find 帮你揪出它们;而桌面用户,点开系统自带的分析器就能轻松搞定。

定期给你的 Ubuntu 系统做个大扫除吧,让它始终保持轻盈与高效!

最后修改:2026 年 04 月 28 日 08 : 25 PM

发表评论