本文目录导读:

- Windows 批处理脚本 (clean_gitbook_cache.bat)
- Linux/macOS Shell 脚本 (clean_gitbook_cache.sh)
- 跨平台 Python 脚本 (clean_gitbook_cache.py)
- 使用说明
- 功能特点
- 注意事项
这是一个实用的 GitBook 缓存自动清理脚本,支持不同操作系统。
Windows 批处理脚本 (clean_gitbook_cache.bat)
@echo off
echo ========================================
echo GitBook Cache Cleaner
echo ========================================
echo.
:: 设置颜色GitBook Cache Cleaner
:: 清理 GitBook 缓存目录
echo [1/3] 清理 GitBook 缓存目录...
if exist "%USERPROFILE%\.gitbook" (
rmdir /s /q "%USERPROFILE%\.gitbook"
echo ✓ .gitbook 缓存已清理
) else (
echo - .gitbook 缓存不存在
)
:: 清理 node_modules 缓存
echo [2/3] 清理 node_modules 缓存...
if exist ".gitbook" (
rmdir /s /q ".gitbook"
echo ✓ .gitbook 目录已清理
) else (
echo - .gitbook 目录不存在
)
:: 清理 _book 目录
echo [3/3] 清理 _book 目录...
if exist "_book" (
rmdir /s /q "_book"
echo ✓ _book 目录已清理
) else (
echo - _book 目录不存在
)
:: 清理 npm 缓存(可选)
echo.
set /p clean_npm=是否清理 npm 缓存?(Y/N):
if /i "!clean_npm!"=="Y" (
echo 清理 npm 缓存...
npm cache clean --force
echo ✓ npm 缓存已清理
)
:: 清理浏览器缓存(可选)
echo.
set /p clean_browser=是否清理浏览器缓存?(Y/N):
if /i "!clean_browser!"=="Y" (
echo 清理浏览器缓存...
RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8
echo ✓ 浏览器缓存已清理
)
echo.
echo ========================================
echo 清理完成!
echo ========================================
pause
Linux/macOS Shell 脚本 (clean_gitbook_cache.sh)
#!/bin/bash
# GitBook Cache Cleaner
echo "========================================"
echo " GitBook Cache Cleaner"
echo "========================================"
echo ""
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# 清理 GitBook 缓存
echo -e "${YELLOW}[1/3]${NC} 清理 GitBook 缓存目录..."
if [ -d "$HOME/.gitbook" ]; then
rm -rf "$HOME/.gitbook"
echo -e "${GREEN} ✓${NC} .gitbook 缓存已清理"
else
echo -e " - .gitbook 缓存不存在"
fi
# 清理项目级缓存
echo -e "${YELLOW}[2/3]${NC} 清理项目级缓存..."
# 清理 .gitbook 目录
if [ -d ".gitbook" ]; then
rm -rf ".gitbook"
echo -e "${GREEN} ✓${NC} .gitbook 目录已清理"
else
echo -e " - .gitbook 目录不存在"
fi
# 清理 node_modules(如果存在 package.json)
if [ -f "package.json" ] && [ -d "node_modules" ]; then
echo -e " - 发现 package.json,是否清理 node_modules?"
read -p " 清理 node_modules? (y/N): " clean_node
if [ "$clean_node" = "y" ] || [ "$clean_node" = "Y" ]; then
rm -rf "node_modules"
echo -e "${GREEN} ✓${NC} node_modules 已清理"
fi
fi
# 清理 _book 目录
echo -e "${YELLOW}[3/3]${NC} 清理 _book 目录..."
if [ -d "_book" ]; then
rm -rf "_book"
echo -e "${GREEN} ✓${NC} _book 目录已清理"
else
echo -e " - _book 目录不存在"
fi
# 清理 npm 缓存
echo ""
read -p "是否清理 npm 缓存?(y/N): " clean_npm
if [ "$clean_npm" = "y" ] || [ "$clean_npm" = "Y" ]; then
echo "清理 npm 缓存..."
npm cache clean --force
echo -e "${GREEN}✓${NC} npm 缓存已清理"
fi
# 清理 Git 缓存
echo ""
read -p "是否清理 Git 缓存?(y/N): " clean_git
if [ "$clean_git" = "y" ] || [ "$clean_git" = "Y" ]; then
if [ -d ".git" ]; then
echo "清理 Git 缓存..."
git gc --auto
echo -e "${GREEN}✓${NC} Git 缓存已清理"
else
echo -e "${RED}✗${NC} 不是 Git 仓库"
fi
fi
echo ""
echo "========================================"
echo -e "${GREEN} 清理完成!${NC}"
echo "========================================"
跨平台 Python 脚本 (clean_gitbook_cache.py)
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
GitBook Cache Cleaner - 跨平台缓存清理工具
"""
import os
import sys
import shutil
import subprocess
from pathlib import Path
class GitBookCacheCleaner:
def __init__(self):
self.home = Path.home()
self.current_dir = Path.cwd()
def print_header(self):
"""打印标题"""
print("=" * 50)
print(" GitBook Cache Cleaner")
print("=" * 50)
print()
def clean_gitbook_global_cache(self):
"""清理全局 GitBook 缓存"""
print("[1/4] 清理全局 GitBook 缓存...")
# Linux/macOS 缓存
gitbook_cache = self.home / ".gitbook"
if gitbook_cache.exists():
shutil.rmtree(gitbook_cache)
print(" ✓ 已清理 ~/.gitbook")
else:
print(" - ~/.gitbook 不存在")
# Windows 缓存
if sys.platform == "win32":
appdata = Path(os.environ.get("APPDATA", ""))
gitbook_appdata = appdata / "gitbook"
if gitbook_appdata.exists():
shutil.rmtree(gitbook_appdata)
print(" ✓ 已清理 AppData/gitbook")
def clean_project_cache(self):
"""清理项目级缓存"""
print("[2/4] 清理项目级缓存...")
# 清理 .gitbook 目录
gitbook_dir = self.current_dir / ".gitbook"
if gitbook_dir.exists():
shutil.rmtree(gitbook_dir)
print(" ✓ 已清理 .gitbook 目录")
else:
print(" - .gitbook 目录不存在")
# 清理 _book 目录
book_dir = self.current_dir / "_book"
if book_dir.exists():
shutil.rmtree(book_dir)
print(" ✓ 已清理 _book 目录")
else:
print(" - _book 目录不存在")
# 清理 npm 相关缓存
package_lock = self.current_dir / "package-lock.json"
if package_lock.exists():
print(" - 发现 package-lock.json")
node_modules = self.current_dir / "node_modules"
if node_modules.exists() and Path("package.json").exists():
response = input(" 发现 node_modules,是否清理?(y/N): ")
if response.lower() == 'y':
shutil.rmtree(node_modules)
print(" ✓ 已清理 node_modules")
def clean_os_cache(self):
"""清理操作系统级缓存"""
print("[3/4] 清理系统级缓存...")
if sys.platform == "darwin": # macOS
# 清理 DNSCache
try:
subprocess.run(["sudo", "killall", "-HUP", "mDNSResponder"],
capture_output=True)
print(" ✓ DNS 缓存已清理")
except:
pass
elif sys.platform == "win32": # Windows
response = input("是否清理 DNS 缓存?(y/N): ")
if response.lower() == 'y':
try:
subprocess.run(["ipconfig", "/flushdns"],
capture_output=True)
print(" ✓ DNS 缓存已清理")
except:
print(" ✗ DNS 缓存清理失败")
def clean_optional_caches(self):
"""清理可选缓存"""
print("[4/4] 清理可选缓存...")
# 清理 npm 缓存
response = input("是否清理 npm 缓存?(y/N): ")
if response.lower() == 'y':
try:
subprocess.run(["npm", "cache", "clean", "--force"],
check=True)
print(" ✓ npm 缓存已清理")
except subprocess.CalledProcessError:
print(" ✗ npm 缓存清理失败")
# 清理 pip 缓存(如果存在)
response = input("是否清理 pip 缓存?(y/N): ")
if response.lower() == 'y':
try:
subprocess.run(["pip", "cache", "purge"], check=True)
print(" ✓ pip 缓存已清理")
except:
print(" - pip 缓存清理失败或不可用")
def run(self):
"""运行清理程序"""
self.print_header()
try:
self.clean_gitbook_global_cache()
print()
self.clean_project_cache()
print()
self.clean_os_cache()
print()
self.clean_optional_caches()
print()
print("=" * 50)
print(" 清理完成!")
print("=" * 50)
except KeyboardInterrupt:
print("\n\n清理被用户中断")
sys.exit(1)
except Exception as e:
print(f"\n错误: {e}")
sys.exit(1)
if __name__ == "__main__":
# 检查管理员权限(Windows)
if sys.platform == "win32":
import ctypes
if not ctypes.windll.shell32.IsUserAnAdmin():
print("建议以管理员身份运行此脚本以获得最佳清理效果")
response = input("是否继续?(Y/n): ")
if response.lower() == 'n':
sys.exit(0)
cleaner = GitBookCacheCleaner()
cleaner.run()
使用说明
Windows 用户
- 将
clean_gitbook_cache.bat保存到项目目录 - 右键点击 → "以管理员身份运行"
- 或双击运行(部分功能需要管理员权限)
Linux/macOS 用户
# 赋予执行权限 chmod +x clean_gitbook_cache.sh # 运行脚本 ./clean_gitbook_cache.sh
Python 用户(跨平台)
# 安装依赖(可选) pip install -r requirements.txt # 运行脚本 python clean_gitbook_cache.py # 或直接运行(Linux/macOS) chmod +x clean_gitbook_cache.py ./clean_gitbook_cache.py
功能特点
- 全面清理:清理 GitBook 生成的各种缓存文件
- 交互式操作:询问用户是否清理某些缓存
- 跨平台支持:Windows、macOS、Linux
- 安全可靠:不会删除重要文件
- 进度显示:清晰显示清理进度和结果
注意事项
- 建议以管理员/root 权限运行以获得最佳效果
- 清理前请确保 GitBook 服务已停止
- 某些操作系统级缓存清理需要管理员权限
- 可选操作(如 npm 缓存)会询问用户确认