Ubuntu系统磁盘清理的方法大全

 更新时间:2025年12月30日 08:51:42   作者:嵌入式学习和实践  
本文介绍了Ubuntu系统磁盘空间不足时的清理方法,包括快速安全清理(卸载无用软件包、清理APT缓存、清理缩略图缓存)和深度清理(清理系统日志、删除旧内核、清理Snap缓存),此外,还讨论了不可直接删除的系统关键目录,并提供了操作指南,需要的朋友可以参考下

当Ubuntu系统磁盘空间告急时,可以通过清理一些特定文件和目录来快速释放空间。

清理类别具体方法主要命令或操作潜在释放空间 & 说明
快速安全清理1. 卸载无用软件包
2. 清理APT缓存
3. 清理缩略图缓存
1. sudo apt autoremove
2. sudo apt clean
3. rm -rf ~/.cache/thumbnails/*
适合日常清理,操作简单且风险低
深度清理1. 清理系统日志
2. 删除旧内核
3. 清理Snap缓存
1. sudo journalctl --vacuum-time=3d
2. sudo apt purge linux-image-旧内核版本号
3. sudo rm -rf /var/lib/snapd/cache/*
释放空间显著,但需要一定的操作技巧,需谨慎
可视化管理1. 查找大文件
2. 使用图形化工具
1. sudo du -sh /*
2. 使用ncduStacer
定位准确,可以直观地找到并删除占用空间最大的文件或目录。

一、清理前的准备

在开始清理前,建议先检查一下磁盘空间的使用情况,做到心中有数。

查看磁盘整体使用情况

df -h

这个命令可以确定是哪个分区(比如 //home)空间紧张。

定位大目录
进入根目录或家目录,使用以下命令查看各个子目录的大小:

sudo du -sh /*

这能快速找到占用空间最大的目录。

二、快速安全清理

这几项操作非常安全,可以定期执行。

卸载无用软件包sudo apt autoremove
这个命令会自动删除那些之前作为依赖被安装,但现在不再被任何程序使用的软件包。

清理APT缓存sudo apt clean
系统会将下载的所有软件包(.deb文件)缓存在 /var/cache/apt/archives/ 目录中。这个命令会清空整个缓存,释放可观的空间。如果只想删除过时的软件包,可以使用 sudo apt autoclean

清理缩略图缓存rm -rf ~/.cache/thumbnails/*
这个命令会删除用户家目录下的缩略图缓存。这些是预览图片时自动生成的,删除后再次浏览时系统会重新创建,所以可以安全清理。

三、 深度清理

以下操作可以释放更多空间,但需要额外小心。

清理系统日志
使用 journalctl 命令可以管理系统的日志。以下命令可以删除3天前的所有日志:

#清理所有早于3天的日志
sudo journalctl --vacuum-time=3d
#或限制日志系统占用的最大磁盘空间
sudo journalctl --vacuum-size=100M
#也可以使用 logrotate 工具管理或手动删除旧的日志文件(如 *.log.1, *.gz)

删除旧内核
注意:这是一个高风险操作,务必确保至少保留一个当前可用的内核版本,切勿删除当前正在运行的内核。

  • 首先,查看已安装的所有内核:
dpkg --list | grep linux-image
  • 使用 uname -r 查看当前正在使用的内核版本。
  • 然后,使用 sudo apt purge linux-image-版本号 来删除那些旧的、不再使用的内核镜像。建议保留最新的1-2个备用内核即可。

清理Snap缓存
如果使用Snap软件包,可以清理其缓存:

sudo rm -rf /var/lib/snapd/cache/*

此外,还可以使用 flatpak uninstall --unused 清理未使用的Flatpak运行时。

四、/snap、/swapfile、/usr 和 /var 文件

目录/文件核心作用是否可以直接删除?清理/处理建议
/snapSnap软件包的安装目录、核心运行时。绝对不能直接删除!可以卸载不用的Snap应用,或清理其缓存。
/swapfile虚拟内存/交换文件,作为物理内存的扩展。绝对不能直接删除!可以调整其大小或禁用(需确保内存充足)。
/usr系统核心资源库,包含用户安装的应用程序、库文件、文档等。绝对不能直接删除!几乎不能手动清理,依赖包管理器(如apt)。
/var可变数据,如日志、缓存、数据库、邮件等。不能直接删除整个目录!是清理的重点区域,可以有选择地清理其子目录(如缓存、旧日志)。

4.1/snap- Snap 软件包容器

  • 作用:这是 Snap 格式软件包的安装目录。Snap 是一种软件打包和分发方式,它将应用程序及其所有依赖项打包成一个独立的、自包含的单元。每个 Snap 应用都在自己的沙箱中运行。
  • 为什么不能直接删除
    • 如果使用了任何 Snap 应用(如 Slack、VS Code、Spotify 等),它们的核心文件就在这里。删除目录会导致所有 Snap 应用无法运行。
    • 即使现在没用,它也是 Snap 系统的一部分,直接删除会破坏系统的包管理结构。
  • 如何安全清理
    • 卸载不用的 Snap 应用
# 列出已安装的 Snap 包
snap list
# 卸载不需要的 Snap 包
sudo snap remove <package-name>
  • 清理 Snap 缓存:Snap 会保留旧版本以便回滚,这可能会占用空间。可以清理缓存,但系统会自动管理,通常不需要手动干预。如果非要手动清理,可以删除缓存目录(风险自担):
sudo rm -rf /var/lib/snapd/cache/*

4.2/swapfile- 交换文件

  • 作用:在物理内存(RAM)不足时,系统会将内存中不常用的数据暂时写入到交换文件(Swap)中,从而为更需要内存的程序腾出空间。它对于系统的稳定性和休眠(Hibernate)功能至关重要。
  • 为什么不能直接删除
    • 直接删除 swapfile 可能会导致系统在内存压力大时崩溃、卡死或出现不可预知的行为。
    • 如果系统启用了休眠功能,删除交换文件将使休眠失效。
  • 如何安全处理
    • 调整大小:如果交换文件太大,并且确信内存充足(例如,16GB以上内存且不休眠),可以先创建一个新的、更小的交换文件,然后再删除旧的。这是一个安全的过程,不是简单的 rm 命令。
    • 禁用交换文件:同样,这是一个安全的配置过程,而不是直接删除文件。可以使用 sudo swapoff /swapfile 然后删除,但通常不建议完全禁用。

4.3/usr- Unix System Resources

  • 作用:这是系统的“软件库”,存放了所有用户安装的应用程序、系统的核心工具、库文件、头文件、共享的只读数据等。可以把它理解为 Windows 下的 C:\Program FilesC:\Windows\System32 的结合体。
  • 为什么不能直接删除
    • 删除 /usr 等于摧毁了整个系统的软件生态,系统将立即瘫痪,无法启动任何非内置命令的程序。
    • 它的内容完全由包管理器(如 aptdpkg)管理,手动删除会破坏依赖关系。
  • 如何安全清理
    • 几乎无法手动清理。唯一安全的方式是使用包管理器:
# 删除不需要的软件包
sudo apt autoremove --purge
# 查找并手动卸载不常用的大型软件
apt list --installed

4.4/var- Variable Data

  • 作用:存放系统运行过程中经常变化的可变数据。这是磁盘清理中最值得关注的目录
  • 为什么不能直接删除整个目录:因为它包含了重要数据,如数据库(MySQL/PostgreSQL)、邮件、网站数据、Docker 镜像等。删除整个目录会导致服务崩溃、数据丢失。
  • 如何安全清理(重点!)

/var/cache/apt/archives/APT 软件包缓存目录。这是清理的首选目标。

# 清空所有已下载的 .deb 软件包(最彻底)
sudo apt clean
# 或只删除过时的软件包(更安全)
sudo apt autoclean

/var/log/系统日志目录。日志文件会随时间增长。

# 清理所有早于3天的日志
sudo journalctl --vacuum-time=3d
# 或限制日志系统占用的最大磁盘空间
sudo journalctl --vacuum-size=100M
# 也可以使用 logrotate 工具管理或手动删除旧的日志文件(如 *.log.1, *.gz)
  • /var/lib/snapd/cache/:如前所述,Snap 的缓存目录。
  • /var/tmp/:临时文件目录,但这里的文件通常会被保留更长时间。可以检查并删除不必要的文件。

五、操作指南

当 Ubuntu 磁盘空间用完时,请按以下顺序安全高效地清理:

第一优先级(安全快捷)

  • sudo apt autoremove (卸载无用依赖)
  • sudo apt clean (清空APT缓存,在 /var/cache/apt/archives/
  • rm -rf ~/.cache/thumbnails/* (清理用户缩略图缓存)

第二优先级(深度清理 /var

  • sudo journalctl --vacuum-time=3d (清理系统日志)
  • 检查并清理 /var/lib/snapd/cache/

第三优先级(应用级别)

  • 使用 snap listsudo snap remove 卸载不用的 Snap 应用。
  • 使用 apt list --installed 查找并卸载不常用的大型软件。

注意:在 Linux 系统里,永远不要直接删除不完全理解其作用的系统级目录。总是优先使用系统提供的包管理工具(apt, snap)或专用命令(journalctl)来进行清理。

清理日志

删除日志

查看磁盘使用情况

以上就是Ubuntu系统磁盘清理的方法大全的详细内容,更多关于Ubuntu系统磁盘清理的资料请关注脚本之家其它相关文章!

相关文章

  • linux7下虚拟主机的三种实现方式

    linux7下虚拟主机的三种实现方式

    这篇文章主要介绍了linux7下虚拟主机的三种实现方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • ubuntu16.04在python3 下创建Django项目并运行的操作方法

    ubuntu16.04在python3 下创建Django项目并运行的操作方法

    这篇文章主要介绍了ubuntu16.04在python3 下创建Django项目并运行,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-09-09
  • linux性能调试之vmstat分析

    linux性能调试之vmstat分析

    这篇文章主要介绍了linux性能调试之vmstat分析。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • Linux内核设备驱动之proc文件系统笔记整理

    Linux内核设备驱动之proc文件系统笔记整理

    今天小编就为大家分享一篇关于Linux内核设备驱动之proc文件系统笔记整理,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • Linux如何使用libudev获取USB设备VID及PID

    Linux如何使用libudev获取USB设备VID及PID

    这篇文章主要介绍了Linux如何使用libudev获取USB设备VID及PID,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • Linux 每天自动备份mysql数据库的方法

    Linux 每天自动备份mysql数据库的方法

    linux下为了安全有时候需要自动备份mysql数据库,下面是具体的实现步骤。感兴趣的朋友跟随小编一起看看吧
    2009-09-09
  • CentOS 6/7环境下通过yum安装php7的方法

    CentOS 6/7环境下通过yum安装php7的方法

    这篇文章主要介绍了CentOS 6/7环境下通过yum安装php7的方法,简单分析了CentOS 6/7服务器环境下使用yum安装php7的相关命令与操作步骤,需要的朋友可以参考下
    2018-03-03
  • linux设置hosts全过程

    linux设置hosts全过程

    这篇文章主要介绍了linux设置hosts全过程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • apache伪静态与iis伪静态规则与配置区别介绍

    apache伪静态与iis伪静态规则与配置区别介绍

    本文章来总结一下关于apache伪静态与iis伪静态区别介绍,主要讲到了一些规则的问题与配置区别,以后大家就可以直接在iis伪静态转换apache,反之也很简单哦,需要了解的碰可以参考下
    2012-12-12
  • Linux命令中Ctrl+z、Ctrl+c和Ctrl+d的区别和使用详解

    Linux命令中Ctrl+z、Ctrl+c和Ctrl+d的区别和使用详解

    这篇文章主要介绍了Linux命令中Ctrl+z、Ctrl+c和Ctrl+d的区别和使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12

最新评论