脚本如何清理临时缓存文件

wen 实用脚本 26

本文目录导读:

脚本如何清理临时缓存文件

  1. 重要提示
  2. Windows 系统(批处理脚本 .bat)
  3. macOS/Linux 系统(Shell 脚本 .sh)
  4. 增强型脚本(Python 跨平台)
  5. 安全与建议

清理临时缓存文件的脚本需要根据操作系统来选择不同的命令,以下是针对 WindowsmacOS/Linux 的脚本示例。

重要提示

请谨慎使用脚本,特别是涉及 rmdel 命令的,建议在运行前先备份重要数据,或者先在测试环境中尝试。


Windows 系统(批处理脚本 .bat)

Windows 的临时文件通常存储在 %TEMP%%WINDIR%\Temp 以及 C:\Windows\Prefetch 等目录。

脚本:CleanTemp.bat

@echo off
chcp 65001 >nulWindows 临时缓存清理工具
echo 正在清理系统临时文件...
:: 清理当前用户临时文件夹
echo 1. 清理用户临时文件 (%TEMP%)...
del /f /s /q "%TEMP%\*.*" >nul 2>&1
rd /s /q "%TEMP%" >nul 2>&1
mkdir "%TEMP%" >nul 2>&1
:: 清理系统临时文件夹
echo 2. 清理系统临时文件 (C:\Windows\Temp)...
del /f /s /q "C:\Windows\Temp\*.*" >nul 2>&1
rd /s /q "C:\Windows\Temp" >nul 2>&1
mkdir "C:\Windows\Temp" >nul 2>&1
:: 清理预读取文件 (Prefetch) - 谨慎使用
echo 3. 清理预读取缓存 (Prefetch)...
del /f /s /q "C:\Windows\Prefetch\*.*" >nul 2>&1
:: 清理回收站(可选,会清空回收站)
echo 4. 清空回收站...
rd /s /q C:\$Recycle.bin >nul 2>&1
:: 清理浏览器缓存(以 Edge/Chrome 为例,可根据需要调整)
:: echo 5. 清理浏览器缓存...
:: del /f /s /q "%LOCALAPPDATA%\Google\Chrome\User Data\Default\Cache\*.*" >nul 2>&1
:: del /f /s /q "%LOCALAPPDATA%\Microsoft\Edge\User Data\Default\Cache\*.*" >nul 2>&1
echo.
echo 清理完成!请按任意键退出...
pause >nul

macOS/Linux 系统(Shell 脚本 .sh)

在 macOS 和 Linux 下,临时文件主要位于 /tmp/var/tmp 以及用户的 ~/.cache~/Library/Caches(macOS)。

脚本:clean_temp.sh

#!/bin/bash
echo "正在清理系统临时缓存文件..."
# 清理 /tmp(系统临时目录,重启后通常会自动清空,但这里二次清理)
echo "1. 清理 /tmp..."
sudo rm -rf /tmp/* 2>/dev/null
# 清理 /var/tmp(持久化临时文件)
echo "2. 清理 /var/tmp..."
sudo rm -rf /var/tmp/* 2>/dev/null
# 清理用户缓存目录
echo "3. 清理用户缓存 (~/.cache)..."
rm -rf ~/.cache/* 2>/dev/null
# macOS 特有:清理用户缓存和日志
if [[ "$OSTYPE" == "darwin"* ]]; then
    echo "4. 清理 macOS 用户缓存 (~/Library/Caches)..."
    rm -rf ~/Library/Caches/* 2>/dev/null
    echo "5. 清理 macOS 日志文件 (~/Library/Logs)..."
    rm -rf ~/Library/Logs/* 2>/dev/null
    # 清理 Xcode 缓存(如果存在)
    echo "6. 清理 Xcode 缓存..."
    rm -rf ~/Library/Developer/Xcode/DerivedData/* 2>/dev/null
    rm -rf ~/Library/Caches/com.apple.dt.Xcode/* 2>/dev/null
fi
# 清理软件包管理器缓存(根据使用的包管理器选择)
echo "7. 清理包管理器缓存..."
if command -v apt &> /dev/null; then
    sudo apt clean 2>/dev/null
elif command -v yum &> /dev/null; then
    sudo yum clean all 2>/dev/null
elif command -v brew &> /dev/null; then
    brew cleanup 2>/dev/null
fi
echo "清理完成!"

使用方法:

  1. 保存脚本为 clean_temp.sh
  2. 赋予执行权限:chmod +x clean_temp.sh
  3. 运行脚本:sudo ./clean_temp.sh (某些操作需要 sudo 权限)

增强型脚本(Python 跨平台)

如果需要更精细的控制,或者希望跨平台运行,可以使用 Python。

脚本:clean_cache.py

#!/usr/bin/env python3
"""
跨平台临时缓存清理脚本
"""
import os
import sys
import shutil
import tempfile
import subprocess
def clean_path(path, description):
    """清理指定路径下的所有文件和文件夹"""
    if not os.path.exists(path):
        print(f"  [跳过] {description} 路径不存在: {path}")
        return
    try:
        for item in os.listdir(path):
            item_path = os.path.join(path, item)
            if os.path.isfile(item_path) or os.path.islink(item_path):
                os.unlink(item_path)
            elif os.path.isdir(item_path):
                shutil.rmtree(item_path)
        print(f"  [完成] 清理 {description}")
    except Exception as e:
        print(f"  [警告] 清理 {description} 时出错: {e}")
def main():
    print("=== 临时缓存清理工具 ===")
    if sys.platform.startswith("win"):
        # Windows 系统
        print("\n[Windows 缓存清理]")
        # 当前用户临时文件夹
        user_temp = os.environ.get("TEMP", "") 
        if user_temp:
            clean_path(user_temp, "用户临时文件夹")
        # 系统临时文件夹
        sys_temp = os.path.join(os.environ.get("WINDIR", "C:\\Windows"), "Temp")
        clean_path(sys_temp, "系统临时文件夹")
        # 预读取文件夹
        prefetch = os.path.join(os.environ.get("WINDIR", "C:\\Windows"), "Prefetch")
        clean_path(prefetch, "预读取缓存")
    elif sys.platform.startswith("darwin") or sys.platform.startswith("linux"):
        # macOS / Linux 系统
        print("\n[Unix 缓存清理]")
        # 系统临时目录
        clean_path("/tmp", "/tmp 目录")
        clean_path("/var/tmp", "/var/tmp 目录")
        # 用户缓存目录
        home = os.path.expanduser("~")
        clean_path(os.path.join(home, ".cache"), "用户 .cache 目录")
        # macOS 特有
        if sys.platform == "darwin":
            caches_dir = os.path.join(home, "Library", "Caches")
            clean_path(caches_dir, "用户 Library/Caches 目录")
            logs_dir = os.path.join(home, "Library", "Logs")
            clean_path(logs_dir, "用户 Library/Logs 目录")
    else:
        print("不支持的操作系统")
        sys.exit(1)
    print("\n=== 清理完成 ===")
if __name__ == "__main__":
    main()

运行方法:
python clean_cache.py
(可能需要 sudo 权限,在某些系统上运行 sudo python clean_cache.py


安全与建议

  1. 不要清理系统关键缓存:如 Windows 的 C:\Windows\System32\、macOS 的 /System/Library/、Linux 的 /lib/ 等。
  2. 谨慎使用 rm -rf:特别是不带路径或路径写错,可能导致数据丢失。
  3. 建议以管理员身份运行:有些临时文件被系统占用,普通用户无法删除,但强行删除某些锁定的文件可能导致应用异常。
  4. 定期与一次性:建议每月执行一次,避免频繁清理导致性能下降(如浏览器重建缓存时反而变慢)。

如果需要针对特定软件(如微信、QQ、Adobe 系列、Python pip 缓存等)的清理方案,可以告诉我具体软件名称,我可以提供更精准的脚本。

抱歉,评论功能暂时关闭!