本文目录导读:

- Windows 环境(PowerShell / bat)
- Linux 环境(Bash)
- macOS 环境(Bash + osascript)
- 跨平台通用方案(Python)
- 通用安全准则与注意事项
- 自动化部署建议
Windows 环境(PowerShell / bat)
Windows 系统的临时文件主要分布在 %TEMP%、C:\Windows\Temp 以及部分软件缓存目录。
使用 PowerShell(推荐,更强大安全)
# 清理当前用户临时文件夹(%TEMP%)
$tempPaths = @(
"$env:TEMP",
"$env:WINDIR\Temp",
"$env:USERPROFILE\AppData\Local\Temp"
)
foreach ($path in $tempPaths) {
if (Test-Path $path) {
try {
# 删除文件(排除正在使用的)
Get-ChildItem -Path $path -Recurse -Force -ErrorAction SilentlyContinue |
Where-Object { !$_.PSIsContainer } |
Remove-Item -Force -ErrorAction SilentlyContinue
# 删除空目录
Get-ChildItem -Path $path -Recurse -Force -ErrorAction SilentlyContinue |
Where-Object { $_.PSIsContainer -and @(Get-ChildItem -LiteralPath $_.Fullname -Recurse -Force -ErrorAction SilentlyContinue | Where-Object { !$_.PSIsContainer }).Count -eq 0 } |
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue
}
catch {
Write-Warning "清理 $path 时出错: $_"
}
}
}
Write-Host "临时文件清理完成(部分文件可能因占用而跳过)"
使用批处理脚本(传统方式)
@echo off echo 正在清理临时文件... :: 清理当前用户临时文件夹 del /f /s /q %TEMP%\*.* > nul 2>&1 for /d %%i in (%TEMP%\*) do rd /s /q "%%i" > nul 2>&1 :: 清理系统临时文件夹(需要管理员权限) del /f /s /q C:\Windows\Temp\*.* > nul 2>&1 for /d %%i in (C:\Windows\Temp\*) do rd /s /q "%%i" > nul 2>&1 :: 清理预取文件(谨慎,可选) del /f /s /q C:\Windows\Prefetch\*.* > nul 2>&1 echo 清理完成! pause
注意:批处理脚本中
del和rd的错误输出被重定向到nul,避免因文件占用而弹出错误信息。
清理其他常见系统残留(PowerShell)
# 清理 Windows 更新缓存(需要管理员权限)
if ([Security.Principal.WindowsIdentity]::GetCurrent().Groups -match "S-1-5-32-544") {
Write-Host "清理 Windows 更新缓存..."
Stop-Service -Name wuauserv -Force -ErrorAction SilentlyContinue
Remove-Item -Path "$env:WINDIR\SoftwareDistribution\Download\*" -Recurse -Force -ErrorAction SilentlyContinue
Start-Service -Name wuauserv -ErrorAction SilentlyContinue
} else {
Write-Warning "需要管理员权限才能清理 Windows 更新缓存。"
}
# 清理回收站(清空)
Clear-RecycleBin -Force -ErrorAction SilentlyContinue
Linux 环境(Bash)
Linux 的临时文件通常位于 /tmp、/var/tmp、用户家目录的 .cache 以及其他应用缓存。
通用临时文件清理脚本
#!/bin/bash
# 使用前请确认你有权限,建议以 root 或普通用户区分执行
echo "开始清理临时文件..."
# 1. 清理 /tmp(注意:不要删除 /tmp 本身!)
# 删除 7 天前的文件和目录(更安全的做法)
find /tmp -type f -atime +7 -delete 2>/dev/null
find /tmp -type d -empty -delete 2>/dev/null
# 2. 清理 /var/tmp
find /var/tmp -type f -atime +7 -delete 2>/dev/null
find /var/tmp -type d -empty -delete 2>/dev/null
# 3. 清理用户缓存(只能由对应用户执行,或以 root 身份遍历家目录)
# 如果以 root 运行,清理所有用户的 .cache 和 .thumbnails
if [ "$EUID" -eq 0 ]; then
echo "以 root 身份清理用户缓存..."
for user_home in /home/* /root; do
if [ -d "$user_home/.cache" ]; then
find "$user_home/.cache" -type f -atime +30 -delete 2>/dev/null
fi
if [ -d "$user_home/.thumbnails" ]; then
rm -rf "$user_home/.thumbnails/"* 2>/dev/null
fi
done
else
# 普通用户清理自己的
echo "清理当前用户的缓存..."
find ~/.cache -type f -atime +30 -delete 2>/dev/null
rm -rf ~/.thumbnails/* 2>/dev/null
fi
# 4. 清理 apt 缓存(Debian/Ubuntu)
if command -v apt &> /dev/null; then
echo "清理 APT 缓存..."
apt-get clean -y 2>/dev/null
fi
# 5. 清理 journal 日志(保留 100M)
if command -v journalctl &> /dev/null; then
echo "清理系统日志(保留 100M)..."
journalctl --vacuum-size=100M 2>/dev/null
fi
echo "清理完成!"
针对特定应用的清理
#!/bin/bash # 清理 Docker 相关临时文件(需要 docker 权限) echo "清理 Docker 系统资源..." docker system prune -f 2>/dev/null # 清理 pip 缓存 echo "清理 pip 缓存..." pip cache purge 2>/dev/null # 清理 npm 缓存 echo "清理 npm 缓存..." npm cache clean --force 2>/dev/null
macOS 环境(Bash + osascript)
macOS 基于 Unix,但部分目录受 SIP 保护。
#!/bin/bash
echo "开始清理 macOS 临时文件..."
# 1. 系统临时目录(/tmp 和 /var/tmp)
sudo find /tmp -type f -atime +7 -delete 2>/dev/null
sudo find /var/tmp -type f -atime +7 -delete 2>/dev/null
# 2. 用户缓存
find ~/Library/Caches -type f -atime +30 -delete 2>/dev/null
find ~/Library/Logs -type f -mtime +30 -delete 2>/dev/null
# 3. 清空废纸篓(需要用户确认)
osascript -e 'tell application "Finder" to empty trash'
# 4. 清理 Xcode 衍生数据(如果有)
if [ -d ~/Library/Developer/Xcode/DerivedData ]; then
echo "清理 Xcode 构建缓存..."
rm -rf ~/Library/Developer/Xcode/DerivedData/* 2>/dev/null
fi
# 5. 清理 Homebrew 缓存
if command -v brew &> /dev/null; then
echo "清理 Homebrew 缓存..."
brew cleanup --prune=all 2>/dev/null
fi
echo "清理结束!"
跨平台通用方案(Python)
如果你需要在多个系统上运行同样的逻辑,Python 是一个好的选择。
#!/usr/bin/env python3
import os
import sys
import shutil
import tempfile
from pathlib import Path
def clean_temp_dirs(dirs, days_old=7):
"""清理指定目录下超过 N 天的文件"""
import time
now = time.time()
limit = days_old * 86400 # 转换为秒
for dir_path in dirs:
if not Path(dir_path).exists():
continue
for root, dirs, files in os.walk(dir_path):
for name in files:
file_path = os.path.join(root, name)
try:
file_age = now - os.path.getatime(file_path)
if file_age > limit:
os.remove(file_path)
except Exception as e:
sys.stderr.write(f"跳过 {file_path}: {e}\n")
def main():
# 根据操作系统选择路径
if sys.platform == 'win32':
temp_dirs = [
os.environ.get('TEMP', ''),
os.path.join(os.environ.get('WINDIR', 'C:\\Windows'), 'Temp'),
os.path.join(os.environ.get('USERPROFILE', ''), 'AppData', 'Local', 'Temp')
]
elif sys.platform == 'darwin': # macOS
temp_dirs = [
'/tmp', '/var/tmp',
os.path.expanduser('~/Library/Caches'),
os.path.expanduser('~/Library/Logs')
]
else: # Linux
temp_dirs = ['/tmp', '/var/tmp', os.path.expanduser('~/.cache')]
# 过滤掉空路径
temp_dirs = [d for d in temp_dirs if d]
print(f"清理目录: {temp_dirs}")
clean_temp_dirs(temp_dirs, days_old=7)
print("清理完成!")
if __name__ == "__main__":
main()
通用安全准则与注意事项
-
不要直接删除目录本身
- 错误:
rm -rf /tmp会删除系统挂载点并导致程序崩溃。 - 正确:只删除
/tmp下的内容,如rm -rf /tmp/*(但注意隐藏文件)。
- 错误:
-
处理被占用的文件
- 文件正在被其他程序使用时无法删除,脚本应自动跳过(如
-ErrorAction SilentlyContinue/2>/dev/null)。
- 文件正在被其他程序使用时无法删除,脚本应自动跳过(如
-
考虑时间阈值
- 不要删除正在使用的临时文件,建议只删除 7 天 或 30 天 以上未访问的文件。
-
权限管理
- 系统临时目录(
C:\Windows\Temp、/tmp、/var/tmp)通常需要管理员或 root 权限,建议脚本检查权限或使用sudo。
- 系统临时目录(
-
测试先行
- 建议先用
echo模拟删除,或用find的-print选项预览将删的文件。
find /tmp -type f -atime +7 -print(查看文件列表,确认无误后再改为-delete)。
- 建议先用
自动化部署建议
- Windows:将 PowerShell 脚本保存为
.ps1,通过 任务计划程序 设置定期执行(如每周日)。 - Linux/macOS:将脚本保存为
.sh,使用chmod +x赋予可执行权限,通过 crontab 设置定时任务(如0 3 * * 0 /path/to/cleanup.sh)。 - 企业级:推荐使用配置管理工具(Ansible、Puppet、SCCM)统一分发和执行清理脚本。
版权声明: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直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播