自动清理gitbook缓存的脚本

wen 实用脚本 6

本文目录导读:

自动清理gitbook缓存的脚本

  1. Windows 批处理脚本 (clean_gitbook_cache.bat)
  2. Linux/macOS Shell 脚本 (clean_gitbook_cache.sh)
  3. 跨平台 Python 脚本 (clean_gitbook_cache.py)
  4. 使用说明
  5. 功能特点
  6. 注意事项

这是一个实用的 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 用户

  1. clean_gitbook_cache.bat 保存到项目目录
  2. 右键点击 → "以管理员身份运行"
  3. 或双击运行(部分功能需要管理员权限)

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

功能特点

  1. 全面清理:清理 GitBook 生成的各种缓存文件
  2. 交互式操作:询问用户是否清理某些缓存
  3. 跨平台支持:Windows、macOS、Linux
  4. 安全可靠:不会删除重要文件
  5. 进度显示:清晰显示清理进度和结果

注意事项

  • 建议以管理员/root 权限运行以获得最佳效果
  • 清理前请确保 GitBook 服务已停止
  • 某些操作系统级缓存清理需要管理员权限
  • 可选操作(如 npm 缓存)会询问用户确认

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