如何高效删除Linux系统中的垃圾文件,彻底告别卡顿现象?
- 内容介绍
- 文章标签
- 相关问答
垃圾文件,你的程序“隐形杀手”
清理垃圾文件的几种方法
方法一的观点是。使用程序自带命令快速清理
Linux程序内置了强大的清理工具,只需几条命令即可释放空间:
-
临时文件清理
临时文件夹可能包含敏感数据:
sudo rm -rf /tmp/* # 请务必备份关键数据再操作! -
使用者缓存清理
清除所有使用者缓存:
rm -rf ~/.cache/* ~/Downloads/*.tmp ~/Downloads/*.part -
回收站彻底清空
永久删除回收站内容:
rm -rf ~/.local/share/Trash/files/* ~/.local/share/Trash/info/* # 注意:此操作不可逆!确认已无需恢复后再执行
再看方法二,专业工具BleachBit深度清洁
对于不熟悉命令行的使用者,图形化工具BleachBit更为友好: 1. 安装:
sudo apt install bleachbit
sudo apt install bleachbit-root # 获得root权限支持
sudo dnf install bleachbit # 或 yum install
sudo pacman -S bleachbit
sudo zypper install bleachbit
- 使用步骤的观点是,
-
以管理员身份运行
bleachbit --root - 勾选需要清理的项目
- 注意不要勾选关键设置项
方法三的观点是。智能分析+精准删除
结合多种工具实现最优效果: 1. 使用ncdu进行磁盘分析:
sudo apt install ncdu # Ubuntu/Debian
sudo dnf install ncdu # Fedora/RHEL/CentOS
ncdu --color=dark -x /
-
对大型日志文件特殊处理:
find /var/log -type f -size +10M | xargs ls -lh | sort -k5,5hr | head -n 10
journalctl --vacuum-size=50M # 清理过旧日志保留最近50MB数据
logrotate /etc/logrotate.conf # 强制轮转日志并压缩旧日志
find /var/log/apt/history.log*!-newermt "7 days ago" -delete # 清理过期apt历史记录
cat /dev/null> /var/log/wtmp # 清空登录记录
truncate --size=0 /var/log/syslog # 不破坏权限地清空syslog
高级技巧与风险防范措施
-
内核版本管理调整
列出已安装内核版本并保留最新两个版本:
dpkg --get-selections | grep linux-image | awk '{print $1}' | sort --version-sort | tail --lines=-3 | xargs sudo apt-get purge --auto-remove && sudo update-grub && sudo reboot now if needed
或使用更简单做法: sudo apt autoremove --purge $) && sudo update-grub && sync;sync,sync;Warning: 操作前请确认当前运行内核版本是否在保留范围内!
#!/bin/bash
echo "开始Apt缓存调整..."
apt-get clean all # 清除所有下载包
apt-get autoclean # 清除过期包
apt-get autoremove # 自动移除依赖残留
rm-rf ~/Downloads/*.deb # 清除下载目录中的deb包备份
echo "开始语言包调整..." apt-get purge language-pack-* # 移除未使用语言包 locale-gen enUS.UTF-8 zhCN.UTF-8 jaJP.UTF-8 ruRU.UTF-8 deDE.UTF-8 frFR.UTF-8 esES.UTF-8 ptBR.UTF-8 itIT.UTF-8 koKR.UTF-8 nlNL.UTF-8 plPL.UTF-8 trTR.UTF- update-locale LANG=enUS.UTF-
echo "开始配置调整..." find /etc/ ~/.config ~/.local/share/applications!,type f exec rm {} \;find .cache .thumbnails .mozilla/firefox/*/storage/default .local/share/recently-used.xbel!delete print stat printf '%s\t%s ' size total find .local/share/applications!delete print stat printf '%s\t%s ' size total find ~/.config/dconf/user type f exec truncate {};sync,sync;sync,注意: 上述脚本会影响应用设置和部分功能!
#!/bin/bash
set-e pipefail set-o nounset trap 'echo Error in line ${LINENO};exit' ERR
function handlevarlib { case "$1" in docker) docker system prune-a || echo Docker prune failed; ,libvirt) virsh net-destroy default;virsh pool-destroy default;rm-rf /var/lib/libvirt/images/*;,postgresql) pgdropcluster latest main || echo PG cluster drop failed;,mysql) mysqladmin flush-privileges;mysqladmin shutdown;,snmpd) snmptranslate-Oa> snmptranslate.cache;,esac }
for dir in $;do handle_varlib "$dir";done
cd /var/lib && find . depth 4 type d empty exec rmdir {} \;cd && sync,sync;sync,不过,警告: 本脚本需要!
#!/bin/bash user=$ homedir=/home/$user logfile=$homedir/Desktop/cleanup$.log maxagedays=60 minfilesizekb=10 echo Starting home directory cleanup at $...>$logfile echo Checking for large old files...>>$logfile find $homedir depth maxdepth =5 name .bak name *~ name Thumbs.db name Desktop.ini name tmp not path Downloads not path Pictures not path Videos not path Documents type f size +${minfilesizekb}k mtime +${maxagedays}d exec ls-lh {} \;>>$logfile echo Checking download folders...>>$logfile find $homedir/Downloads type f size +${minfilesizekb}k mtime +${maxagedays}d exec ls-lh {} \;>>$logfile echo Checking application caches...>>$logfile du-sh ~/.cache ~/.thumbnails ~/.mozilla ~/.config/google-chrome/Default/Cache ~/.java/deployment/cache/metainfo/.idx ~/.java/deployment/cache/metainfo/.dat>>$logfile echo Cleaning up temporary files...>>$logfile rm-f $homedir/temp*.txt $homedir/temporary*.dat $homedir/*.temp 2>$errorlogfile || true echo Creating symlinks for frequently used tools...>>$logfile ln-sf $ ~/bin/ncdu ln-sf $ ~/bin/disk-analyzer ln-sf $ ~/bin/log-viewer chmod a+x ~/bin/* echo Generating cleanup report...>>$logfile du-sh $homedir/Pictures du-sh $homedir/Music du-sh $homedir/Videos df-h date +"%Y-%m-%d %H:%M:%S">>$reportfile cat >$reportfile ================================================= HOME DIRECTORY CLEANUP REPORT Generated on: $ User: $user System Info: $。CPU Cores: $,Memory Total: $ MB ================================================= EOF cat "$errorlogfile">>$reportfile mv "$errorlogfile" "$reportdir"/cleanuperrors.log chmod og-w "$report_file"
说到提示,上述脚本需要手动创建~/bin目录!
- 通过单使用者模式启动
- 挂载外部介质拯救关键数据
- 使用chroot环境修复
- 考虑重装程序但保留/home分区
垃圾文件,你的程序“隐形杀手”
清理垃圾文件的几种方法
方法一的观点是。使用程序自带命令快速清理
Linux程序内置了强大的清理工具,只需几条命令即可释放空间:
-
临时文件清理
临时文件夹可能包含敏感数据:
sudo rm -rf /tmp/* # 请务必备份关键数据再操作! -
使用者缓存清理
清除所有使用者缓存:
rm -rf ~/.cache/* ~/Downloads/*.tmp ~/Downloads/*.part -
回收站彻底清空
永久删除回收站内容:
rm -rf ~/.local/share/Trash/files/* ~/.local/share/Trash/info/* # 注意:此操作不可逆!确认已无需恢复后再执行
再看方法二,专业工具BleachBit深度清洁
对于不熟悉命令行的使用者,图形化工具BleachBit更为友好: 1. 安装:
sudo apt install bleachbit
sudo apt install bleachbit-root # 获得root权限支持
sudo dnf install bleachbit # 或 yum install
sudo pacman -S bleachbit
sudo zypper install bleachbit
- 使用步骤的观点是,
-
以管理员身份运行
bleachbit --root - 勾选需要清理的项目
- 注意不要勾选关键设置项
方法三的观点是。智能分析+精准删除
结合多种工具实现最优效果: 1. 使用ncdu进行磁盘分析:
sudo apt install ncdu # Ubuntu/Debian
sudo dnf install ncdu # Fedora/RHEL/CentOS
ncdu --color=dark -x /
-
对大型日志文件特殊处理:
find /var/log -type f -size +10M | xargs ls -lh | sort -k5,5hr | head -n 10
journalctl --vacuum-size=50M # 清理过旧日志保留最近50MB数据
logrotate /etc/logrotate.conf # 强制轮转日志并压缩旧日志
find /var/log/apt/history.log*!-newermt "7 days ago" -delete # 清理过期apt历史记录
cat /dev/null> /var/log/wtmp # 清空登录记录
truncate --size=0 /var/log/syslog # 不破坏权限地清空syslog
高级技巧与风险防范措施
-
内核版本管理调整
列出已安装内核版本并保留最新两个版本:
dpkg --get-selections | grep linux-image | awk '{print $1}' | sort --version-sort | tail --lines=-3 | xargs sudo apt-get purge --auto-remove && sudo update-grub && sudo reboot now if needed
或使用更简单做法: sudo apt autoremove --purge $) && sudo update-grub && sync;sync,sync;Warning: 操作前请确认当前运行内核版本是否在保留范围内!
#!/bin/bash
echo "开始Apt缓存调整..."
apt-get clean all # 清除所有下载包
apt-get autoclean # 清除过期包
apt-get autoremove # 自动移除依赖残留
rm-rf ~/Downloads/*.deb # 清除下载目录中的deb包备份
echo "开始语言包调整..." apt-get purge language-pack-* # 移除未使用语言包 locale-gen enUS.UTF-8 zhCN.UTF-8 jaJP.UTF-8 ruRU.UTF-8 deDE.UTF-8 frFR.UTF-8 esES.UTF-8 ptBR.UTF-8 itIT.UTF-8 koKR.UTF-8 nlNL.UTF-8 plPL.UTF-8 trTR.UTF- update-locale LANG=enUS.UTF-
echo "开始配置调整..." find /etc/ ~/.config ~/.local/share/applications!,type f exec rm {} \;find .cache .thumbnails .mozilla/firefox/*/storage/default .local/share/recently-used.xbel!delete print stat printf '%s\t%s ' size total find .local/share/applications!delete print stat printf '%s\t%s ' size total find ~/.config/dconf/user type f exec truncate {};sync,sync;sync,注意: 上述脚本会影响应用设置和部分功能!
#!/bin/bash
set-e pipefail set-o nounset trap 'echo Error in line ${LINENO};exit' ERR
function handlevarlib { case "$1" in docker) docker system prune-a || echo Docker prune failed; ,libvirt) virsh net-destroy default;virsh pool-destroy default;rm-rf /var/lib/libvirt/images/*;,postgresql) pgdropcluster latest main || echo PG cluster drop failed;,mysql) mysqladmin flush-privileges;mysqladmin shutdown;,snmpd) snmptranslate-Oa> snmptranslate.cache;,esac }
for dir in $;do handle_varlib "$dir";done
cd /var/lib && find . depth 4 type d empty exec rmdir {} \;cd && sync,sync;sync,不过,警告: 本脚本需要!
#!/bin/bash user=$ homedir=/home/$user logfile=$homedir/Desktop/cleanup$.log maxagedays=60 minfilesizekb=10 echo Starting home directory cleanup at $...>$logfile echo Checking for large old files...>>$logfile find $homedir depth maxdepth =5 name .bak name *~ name Thumbs.db name Desktop.ini name tmp not path Downloads not path Pictures not path Videos not path Documents type f size +${minfilesizekb}k mtime +${maxagedays}d exec ls-lh {} \;>>$logfile echo Checking download folders...>>$logfile find $homedir/Downloads type f size +${minfilesizekb}k mtime +${maxagedays}d exec ls-lh {} \;>>$logfile echo Checking application caches...>>$logfile du-sh ~/.cache ~/.thumbnails ~/.mozilla ~/.config/google-chrome/Default/Cache ~/.java/deployment/cache/metainfo/.idx ~/.java/deployment/cache/metainfo/.dat>>$logfile echo Cleaning up temporary files...>>$logfile rm-f $homedir/temp*.txt $homedir/temporary*.dat $homedir/*.temp 2>$errorlogfile || true echo Creating symlinks for frequently used tools...>>$logfile ln-sf $ ~/bin/ncdu ln-sf $ ~/bin/disk-analyzer ln-sf $ ~/bin/log-viewer chmod a+x ~/bin/* echo Generating cleanup report...>>$logfile du-sh $homedir/Pictures du-sh $homedir/Music du-sh $homedir/Videos df-h date +"%Y-%m-%d %H:%M:%S">>$reportfile cat >$reportfile ================================================= HOME DIRECTORY CLEANUP REPORT Generated on: $ User: $user System Info: $。CPU Cores: $,Memory Total: $ MB ================================================= EOF cat "$errorlogfile">>$reportfile mv "$errorlogfile" "$reportdir"/cleanuperrors.log chmod og-w "$report_file"
说到提示,上述脚本需要手动创建~/bin目录!
- 通过单使用者模式启动
- 挂载外部介质拯救关键数据
- 使用chroot环境修复
- 考虑重装程序但保留/home分区

