Linux系统清理临时文件的实用技巧
Linux系统中,临时文件通常集中存储在以下目录,清理前需确认这些路径避免误删:
包管理器下载的安装包会占用大量空间,可通过以下命令清理:
sudo apt-get clean(删除/var/cache/apt/archives下的所有.deb安装包)、sudo apt-get autoclean(删除不再可用的旧版本安装包);sudo yum clean all(清理yum缓存)、sudo dnf clean all(dnf清理缓存)。/var/tmp目录的文件保留时间较长(默认30天以上),可使用find命令结合-mtime参数删除指定天数前的文件(例如删除7天前的文件):
sudo find /var/tmp -type f -mtime +7 -exec rm -rf {} \;
-type f:仅匹配文件,避免删除目录;-mtime +7:匹配7天前修改的文件;-exec rm -rf {} \;:对匹配的文件执行强制删除操作。用户级缓存目录(如~/.cache/thumbnails、~/.cache/google-chrome)存储了大量临时文件,可直接删除(不会影响用户数据):
rm -rf ~/.cache/*
若需保留部分文件(如浏览器登录状态),可进入对应子目录选择性删除(例如删除Chrome缓存):
rm -rf ~/.cache/google-chrome/Default/Cache/*
当临时文件数量极多(如数万、数十万)时,rm -rf *可能因参数过长报错(Argument list too long),需采用以下方法:
find命令逐条删除find命令可遍历目录并逐条删除文件,避免参数过长问题:
find /path/to/tmp -type f -delete
-delete:直接删除匹配的文件(自动启用-depth选项,避免删除目录时出错)。rsync同步空目录通过rsync将目标目录同步为空目录,实现快速清空(适合超大量文件):
mkdir /data/empty # 创建空目录
rsync --delete-before -d /data/empty/ /path/to/tmp/ # 同步删除目标目录内容
rm -rf /data/empty # 删除空目录
--delete-before:在传输前删除目标目录文件;-d:仅同步目录,不递归子目录(需配合-delete使用)。rm -rf:该命令会直接删除文件且无法恢复,执行前务必确认路径正确(例如用ls命令先查看目标目录内容);/proc、/sys、/dev等系统目录下的文件,否则可能导致系统崩溃;cron定时任务定期清理临时文件(例如每天凌晨2点清理/tmp目录):crontab -e
添加以下内容:0 2 * * * find /tmp -type f -mtime +1 -exec rm -rf {} \;
表示每天凌晨2点删除/tmp目录下1天前的文件。