温馨提示×

Ubuntu系统清理大文件的步骤

小樊
46
2025-09-17 15:03:28
栏目: 智能运维

1. 查找大文件:定位需清理的目标
在清理大文件前,需先通过工具找出系统中占用空间大的文件/目录。常见方法如下:

  • find命令(精确查找):通过文件大小筛选目标,例如查找根目录下所有大于100MB的文件(-type f限定为文件,-size +100M表示大于100MB),并以人类可读格式显示详情:
    sudo find / -type f -size +100M -exec ls -lh {} \; 2>/dev/null
    若需查找大于1GB的文件,将+100M改为+1G即可。该命令会忽略权限拒绝等错误信息。
  • ncdu工具(交互式分析):终端下的磁盘使用分析工具,提供树状视图浏览文件/目录大小,操作更直观。安装后(sudo apt update && sudo apt install ncdu),运行sudo ncdu /扫描整个系统,或ncdu ~扫描主目录;通过↑/↓键选择文件,→键进入子目录,d键删除选中项(需确认)。
  • du+sort组合(快速定位Top大文件):统计目录/文件大小并排序,例如查看根目录下最大的10个文件/目录:
    sudo du -a / 2>/dev/null | sort -n -r | head -n 10
    若需查看主目录下各子目录的大小,可使用du -sh ~/Downloads ~/Documents ~/Pictures-s显示总大小,-h人类可读格式)。
  • 图形化工具(适合新手):Ubuntu自带的“磁盘使用分析器”(Disk Usage Analyzer,又称Baobab),打开后扫描系统,通过环形图或树状图直观显示大文件位置,点击图表区域可深入查看具体文件。

2. 清理大文件:安全删除目标文件
找到大文件后,需确认文件是否为系统关键文件(如/usr/etc下的系统文件)或个人重要数据,避免误删导致系统故障。确认后可使用以下方法删除:

  • rm命令(手动删除):删除单个文件(如largefile.bin):rm /path/to/largefile.bin;删除目录及其内容(如downloads目录):rm -r /path/to/downloads-r表示递归删除)。
  • find命令(批量删除):结合-delete选项批量删除符合条件的文件,例如删除所有大于100MB的.log日志文件:
    sudo find /var/log -type f -name "*.log" -size +100M -delete
    或删除所有大于1GB的文件:sudo find / -type f -size +1G -delete。注意:-delete选项会直接删除文件,无确认提示,需谨慎使用。
  • 图形化工具(便捷删除):使用ncdud键删除选中文件,或在“磁盘使用分析器”中右键点击大文件,选择“删除”。

3. 清理系统生成的临时/缓存/日志文件(辅助释放空间)
除大文件外,系统临时文件、缓存及日志文件也会占用大量空间,需定期清理:

  • 清理APT缓存:APT包管理器下载的软件包会存储在/var/cache/apt/archives目录,使用以下命令清理:
    sudo apt clean(彻底清理所有缓存包);sudo apt autoclean(清理旧版本的缓存包)。
  • 清理临时文件:系统临时文件存储在/tmp目录,可使用以下命令删除:
    sudo rm -rf /tmp/*(删除/tmp下所有文件,重启系统后/tmp会自动清空)。
  • 清理日志文件:系统日志文件存储在/var/log目录,可使用journalctl命令清理旧日志:
    sudo journalctl --vacuum-size=100M(保留最近100MB日志);sudo journalctl --vacuum-time=3d(删除3天前的日志)。
  • 使用bleachbit工具(深度清理):图形化清理工具,可清理临时文件、缓存、日志、回收站等,安装后(sudo apt install bleachbit)运行bleachbit,选择需清理的项目(如“系统临时文件”“浏览器缓存”),点击“清理”即可。

4. 可选:设置定期清理任务(自动化维护)
为避免磁盘空间再次不足,可设置定期清理任务(如每天凌晨清理缓存):

  • 编辑当前用户的crontab文件:crontab -e
  • 添加以下行(每天凌晨3点清理APT缓存和/tmp目录):
    0 3 * * * apt clean && apt autoclean && rm -rf /tmp/*
    保存并退出,cron会自动执行该任务。

0