我来介绍几种常见的Shell脚本清理用户缓存的方法:

综合清理脚本
#!/bin/bash
# 清理用户缓存脚本
echo "开始清理用户缓存..."
# 清理浏览器缓存(以Chrome为例)
if [ -d "$HOME/.cache/google-chrome" ]; then
echo "清理Chrome缓存..."
rm -rf "$HOME/.cache/google-chrome/"*
echo "Chrome缓存已清理"
fi
# 清理Firefox缓存
if [ -d "$HOME/.cache/mozilla/firefox" ]; then
echo "清理Firefox缓存..."
rm -rf "$HOME/.cache/mozilla/firefox/"*
echo "Firefox缓存已清理"
fi
# 清理系统应用缓存
echo "清理系统应用缓存..."
rm -rf "$HOME/.cache/"*
# 清理缩略图缓存
echo "清理缩略图缓存..."
rm -rf "$HOME/.thumbnails/"*
rm -rf "$HOME/.cache/thumbnails/"*
# 清理软件包管理器缓存
echo "清理APT缓存..."
sudo apt-get clean
sudo apt-get autoclean
# 清理日志文件
echo "清理旧日志文件..."
find "$HOME" -name "*.log" -type f -mtime +7 -delete
echo "缓存清理完成!"
交互式清理脚本
#!/bin/bash
# 颜色定义
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color
# 显示菜单
show_menu() {
clear
echo -e "${GREEN}缓存清理工具${NC}"
echo "========================"
echo "1. 清理浏览器缓存"
echo "2. 清理系统缓存"
echo "3. 清理缩略图缓存"
echo "4. 清理日志文件"
echo "5. 清理所有缓存"
echo "6. 退出"
echo "========================"
}
# 清理浏览器缓存
clean_browser_cache() {
echo -e "${YELLOW}正在清理浏览器缓存...${NC}"
# Chrome
if [ -d "$HOME/.cache/google-chrome" ]; then
rm -rf "$HOME/.cache/google-chrome/"* 2>/dev/null
echo "Chrome缓存已清理"
fi
# Firefox
if [ -d "$HOME/.cache/mozilla/firefox" ]; then
rm -rf "$HOME/.cache/mozilla/firefox/"* 2>/dev/null
echo "Firefox缓存已清理"
fi
# Chromium
if [ -d "$HOME/.cache/chromium" ]; then
rm -rf "$HOME/.cache/chromium/"* 2>/dev/null
echo "Chromium缓存已清理"
fi
echo -e "${GREEN}浏览器缓存清理完成${NC}"
}
# 清理系统缓存
clean_system_cache() {
echo -e "${YELLOW}正在清理系统缓存...${NC}"
# 清理 ~/.cache 目录
if [ -d "$HOME/.cache" ]; then
rm -rf "$HOME/.cache/"* 2>/dev/null
echo "系统缓存已清理"
fi
# 清理pip缓存
if [ -d "$HOME/.cache/pip" ]; then
rm -rf "$HOME/.cache/pip/"* 2>/dev/null
echo "pip缓存已清理"
fi
echo -e "${GREEN}系统缓存清理完成${NC}"
}
# 清理缩略图缓存
clean_thumbnails() {
echo -e "${YELLOW}正在清理缩略图缓存...${NC}"
rm -rf "$HOME/.thumbnails/"* 2>/dev/null
rm -rf "$HOME/.cache/thumbnails/"* 2>/dev/null
rm -rf "$HOME/.local/share/thumbnails/"* 2>/dev/null
echo -e "${GREEN}缩略图缓存清理完成${NC}"
}
# 清理日志文件
clean_logs() {
echo -e "${YELLOW}正在清理旧日志文件...${NC}"
# 清理7天前的日志
find "$HOME" -name "*.log" -type f -mtime +7 -delete 2>/dev/null
echo -e "${GREEN}旧日志文件清理完成${NC}"
}
# 清理所有缓存
clean_all() {
echo -e "${YELLOW}正在清理所有缓存...${NC}"
clean_browser_cache
clean_system_cache
clean_thumbnails
clean_logs
# 清理软件包缓存(需要sudo权限)
if command -v apt-get &>/dev/null; then
sudo apt-get clean 2>/dev/null
sudo apt-get autoclean 2>/dev/null
fi
echo -e "${GREEN}所有缓存清理完成${NC}"
}
# 显示磁盘使用情况
show_disk_usage() {
echo -e "${YELLOW}缓存目录大小:${NC}"
du -sh "$HOME/.cache" 2>/dev/null || echo "0B"
du -sh "$HOME/.thumbnails" 2>/dev/null || echo "0B"
}
# 主循环
while true; do
show_menu
show_disk_usage
echo ""
read -p "请选择操作 [1-6]: " choice
case $choice in
1)
clean_browser_cache
;;
2)
clean_system_cache
;;
3)
clean_thumbnails
;;
4)
clean_logs
;;
5)
clean_all
;;
6)
echo -e "${GREEN}退出程序${NC}"
exit 0
;;
*)
echo -e "${RED}无效选择,请重新输入${NC}"
;;
esac
echo ""
read -p "按回车键继续..."
done
特定应用缓存清理
#!/bin/bash
# 清理特定应用的缓存
# 清理Docker缓存
clean_docker() {
if command -v docker &>/dev/null; then
echo "清理Docker缓存..."
docker system prune -af --volumes 2>/dev/null
fi
}
# 清理npm缓存
clean_npm() {
if command -v npm &>/dev/null; then
echo "清理npm缓存..."
npm cache clean --force 2>/dev/null
fi
}
# 清理pip缓存
clean_pip() {
if command -v pip3 &>/dev/null; then
echo "清理pip缓存..."
pip3 cache purge 2>/dev/null
fi
}
# 清理snap缓存
clean_snap() {
if command -v snap &>/dev/null; then
echo "清理snap缓存..."
sudo snap clean --all 2>/dev/null
fi
}
# 清理flatpak缓存
clean_flatpak() {
if command -v flatpak &>/dev/null; then
echo "清理flatpak缓存..."
flatpak uninstall --unused 2>/dev/null
fi
}
# 清理conda缓存
clean_conda() {
if command -v conda &>/dev/null; then
echo "清理conda缓存..."
conda clean --all -y 2>/dev/null
fi
}
定时清理脚本
#!/bin/bash
# 定时清理脚本 - 建议配合cron使用
LOG_FILE="$HOME/.cache_cleaner.log"
CURRENT_DATE=$(date "+%Y-%m-%d %H:%M:%S")
echo "[$CURRENT_DATE] 开始清理缓存" >> "$LOG_FILE"
# 清理各类缓存并记录日志
cleanup_with_log() {
local dir="$1"
local name="$2"
if [ -d "$dir" ]; then
local size_before=$(du -sh "$dir" 2>/dev/null | cut -f1)
rm -rf "$dir"/*
echo "已清理 $name ($size_before)" >> "$LOG_FILE"
fi
}
# 执行清理
cleanup_with_log "$HOME/.cache" "系统缓存"
cleanup_with_log "$HOME/.thumbnails" "缩略图缓存"
cleanup_with_log "$HOME/.local/share/Trash" "回收站"
# 清理7天前的日志文件
find "$HOME" -name "*.log" -type f -mtime +7 -delete 2>/dev/null
echo "清理完成" >> "$LOG_FILE"
echo "------------------------" >> "$LOG_FILE"
# 显示清理历史
cat "$LOG_FILE"
使用方法
-
保存脚本:
# 保存为 clean_cache.sh nano clean_cache.sh
-
添加执行权限:
chmod +x clean_cache.sh
-
运行脚本:
# 直接运行 ./clean_cache.sh
或使用bash运行
bash clean_cache.sh
4. **设置定时任务**(可选):
```bash
# 编辑crontab
crontab -e
# 添加每周日清理的任务
0 2 * * 0 /path/to/clean_cache.sh
注意事项
- 备份重要数据:在运行清理脚本前,确保重要数据已备份
- 权限问题:某些目录可能需要sudo权限
- 选择性清理:可以根据实际需求选择清理的内容
- 谨慎使用:
rm -rf命令要小心使用,避免误删重要文件
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播