本文目录导读:

Linux/macOS 版本
#!/bin/bash
# Composer缓存清理脚本
# 自动检测并清理Composer缓存目录
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
echo -e "${GREEN}========================================${NC}"
echo -e "${GREEN} Composer 缓存自动清理工具${NC}"
echo -e "${GREEN}========================================${NC}"
# 检测Composer是否安装
if ! command -v composer &> /dev/null; then
echo -e "${RED}错误: Composer 未安装或不在PATH中${NC}"
exit 1
fi
# 获取当前Composer版本
COMPOSER_VERSION=$(composer --version 2>&1)
echo -e "${YELLOW}当前Composer版本: ${COMPOSER_VERSION}${NC}"
# 获取缓存目录
CACHE_DIR=$(composer config cache-dir 2>/dev/null)
if [ -z "$CACHE_DIR" ]; then
# 如果无法获取配置,使用默认路径
if [[ "$OSTYPE" == "darwin"* ]]; then
CACHE_DIR="$HOME/Library/Caches/composer"
elif [[ "$OSTYPE" == "linux-gnu"* ]]; then
CACHE_DIR="$HOME/.cache/composer"
else
CACHE_DIR="$HOME/.composer/cache"
fi
fi
echo -e "${YELLOW}缓存目录: ${CACHE_DIR}${NC}"
# 检查缓存目录是否存在
if [ ! -d "$CACHE_DIR" ]; then
echo -e "${YELLOW}缓存目录不存在,无需清理${NC}"
exit 0
fi
# 显示当前缓存大小
echo -e "\n${YELLOW}当前缓存大小:${NC}"
du -sh "$CACHE_DIR" 2>/dev/null
# 确认清理(可设置自动确认)
if [ "$1" != "-y" ]; then
read -p "是否要清理Composer缓存? (y/n): " confirm
if [ "$confirm" != "y" ] && [ "$confirm" != "Y" ]; then
echo -e "${YELLOW}操作已取消${NC}"
exit 0
fi
fi
# 执行清理
echo -e "\n${YELLOW}正在清理Composer缓存...${NC}"
# 方法1: 使用composer自带的清理命令(推荐)
composer clear-cache 2>&1
if [ $? -eq 0 ]; then
echo -e "${GREEN}✓ Composer缓存已清理完成${NC}"
else
# 如果composer命令失败,手动清理
echo -e "${YELLOW}尝试手动清理缓存文件...${NC}"
rm -rf "$CACHE_DIR"/* 2>/dev/null
if [ $? -eq 0 ]; then
echo -e "${GREEN}✓ 缓存文件已手动清理${NC}"
else
echo -e "${RED}× 清理失败,请检查权限${NC}"
exit 1
fi
fi
# 显示清理后的结果
echo -e "\n${YELLOW}清理后缓存大小:${NC}"
if [ -d "$CACHE_DIR" ]; then
du -sh "$CACHE_DIR" 2>/dev/null || echo "0B"
else
echo "0B"
fi
echo -e "${GREEN}========================================${NC}"
echo -e "${GREEN} 清理完成!${NC}"
echo -e "${GREEN}========================================${NC}"
Windows 批处理版本 (clean_composer_cache.bat)
@echo off
chcp 65001 >nul
REM Composer缓存清理脚本 (Windows版)Composer 缓存自动清理工具
echo ========================================
echo Composer 缓存自动清理工具
echo ========================================
REM 检测Composer是否安装
where composer >nul 2>nul
if %errorlevel% neq 0 (
echo [错误] Composer 未安装或不在PATH中
pause
exit /b 1
)
REM 获取Composer版本
for /f "tokens=*" %%i in ('composer --version 2^>nul') do set COMPOSER_VER=%%i
echo 当前Composer版本: %COMPOSER_VER%
REM 获取缓存目录
for /f "tokens=*" %%i in ('composer config cache-dir 2^>nul') do set CACHE_DIR=%%i
if "%CACHE_DIR%"=="" (
set CACHE_DIR=%APPDATA%\Composer\cache
)
echo 缓存目录: %CACHE_DIR%
REM 检查缓存目录是否存在
if not exist "%CACHE_DIR%" (
echo 缓存目录不存在,无需清理
pause
exit /b 0
)
REM 显示当前缓存大小
echo.
echo 正在计算缓存大小...
for /f "tokens=3" %%i in ('dir /s /a "%CACHE_DIR%" 2^>nul ^| findstr /i "文件"') do set CACHE_SIZE=%%i
echo 当前缓存大小: %CACHE_SIZE%
REM 确认清理
if not "%1"=="-y" (
set /p CONFIRM="是否要清理Composer缓存? (y/n): "
if /i not "%CONFIRM%"=="y" (
echo 操作已取消
pause
exit /b 0
)
)
REM 执行清理
echo.
echo 正在清理Composer缓存...
REM 方法1: 使用composer自带的清理命令
call composer clear-cache
if %errorlevel% equ 0 (
echo [成功] Composer缓存已清理完成
) else (
echo [提示] 尝试手动清理缓存文件...
if exist "%CACHE_DIR%" (
del /f /s /q "%CACHE_DIR%\*.*" >nul 2>nul
rmdir /s /q "%CACHE_DIR%" >nul 2>nul
mkdir "%CACHE_DIR%" >nul 2>nul
echo [成功] 缓存文件已手动清理
) else (
echo [错误] 清理失败,请检查权限
pause
exit /b 1
)
)
REM 显示清理后的结果
echo.
echo 清理后缓存大小:
if exist "%CACHE_DIR%" (
for /f "tokens=3" %%i in ('dir /s /a "%CACHE_DIR%" 2^>nul ^| findstr /i "文件"') do echo %%i
) else (
echo 0B
)
echo ========================================
echo 清理完成!
echo ========================================
pause
使用说明
Linux/macOS
-
保存脚本
# 将上面的脚本保存为 clean_composer_cache.sh
-
赋予执行权限
chmod +x clean_composer_cache.sh
-
运行脚本
# 交互模式(需要确认) ./clean_composer_cache.sh # 自动模式(无需确认) ./clean_composer_cache.sh -y
Windows
-
保存脚本
- 将 Windows 版本保存为
clean_composer_cache.bat
- 将 Windows 版本保存为
-
运行脚本
- 双击运行(需要手动确认)
- 或在命令行执行(自动模式):
clean_composer_cache.bat -y
定时自动清理(可选)
Linux (crontab)
# 每天凌晨2点自动清理 crontab -e 0 2 * * * /path/to/clean_composer_cache.sh -y >> /dev/null 2>&1
Windows (任务计划程序)
- 打开"任务计划程序"
- 创建基本任务
- 设置触发器(例如每天)
- 设置操作:启动程序
- 程序/脚本:
C:\path\to\clean_composer_cache.bat - 添加参数:
-y
注意事项
- 清理缓存后,下次运行
composer install或composer update时会重新下载包 - 如果网络不佳,建议不要频繁清理
- 脚本默认使用
composer clear-cache命令,这是最安全的方式 - 如果遇到权限问题,Linux/macOS 可能需要使用
sudo运行
版权声明: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直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播