本文目录导读:

Bash 脚本版本
#!/bin/bash
# Jekyll 缓存清理脚本
# 保存为 clean-jekyll-cache.sh
echo "🔍 开始清理 Jekyll 缓存..."
# 项目根目录(脚本所在目录)
PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# 需要清理的目录列表
CACHE_DIRS=(
"_site"
".jekyll-cache"
".sass-cache"
)
# 清理函数
clean_directory() {
local dir="$PROJECT_DIR/$1"
if [ -d "$dir" ]; then
echo "🗑️ 删除: $dir"
rm -rf "$dir"
echo "✅ 已删除: $1"
else
echo "ℹ️ 目录不存在,跳过: $1"
fi
}
# 清理文件
clean_file() {
local file="$PROJECT_DIR/$1"
if [ -f "$file" ]; then
echo "🗑️ 删除: $file"
rm -f "$file"
echo "✅ 已删除: $1"
else
echo "ℹ️ 文件不存在,跳过: $1"
fi
}
echo "📁 项目目录: $PROJECT_DIR"
echo ""
# 清理缓存目录
for dir in "${CACHE_DIRS[@]}"; do
clean_directory "$dir"
done
# 清理 Gemfile.lock(可选,如果依赖有变化)
# clean_file "Gemfile.lock"
echo ""
echo "✨ Jekyll 缓存清理完成!"
echo "💡 现在可以运行 'bundle exec jekyll serve' 重新构建项目"
使用方法
-
保存脚本:
# 将脚本保存到 Jekyll 项目根目录 nano clean-jekyll-cache.sh # 粘贴脚本内容后保存
-
添加执行权限:
chmod +x clean-jekyll-cache.sh
-
运行脚本:
./clean-jekyll-cache.sh
高级版本(带参数选项)
#!/bin/bash
# Jekyll 缓存清理脚本 - 高级版本
# 保存为 clean-jekyll-cache.sh
set -e
# 颜色输出
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# 默认选项
CLEAN_SITE=true
CLEAN_CACHE=true
CLEAN_SASS=true
CLEAN_LOCK=false
DRY_RUN=false
VERBOSE=false
# 帮助信息
show_help() {
echo "用法: $0 [选项]"
echo ""
echo "选项:"
echo " -h, --help 显示帮助信息"
echo " -s, --site 清理 _site 目录 (默认: true)"
echo " -c, --cache 清理 .jekyll-cache (默认: true)"
echo " -a, --sass 清理 .sass-cache (默认: true)"
echo " -l, --lock 清理 Gemfile.lock (默认: false)"
echo " -d, --dry-run 只显示要清理的内容,不实际删除"
echo " -v, --verbose 显示详细信息"
echo " -y, --yes 自动确认,不提示"
echo ""
echo "示例:"
echo " $0 # 清理默认缓存"
echo " $0 -d # 预览模式"
echo " $0 -l -y # 清理所有包括 Gemfile.lock"
echo " $0 -s false -c false # 只清理 .sass-cache"
}
# 解析参数
while [[ $# -gt 0 ]]; do
case $1 in
-h|--help)
show_help
exit 0
;;
-s|--site)
CLEAN_SITE="$2"
shift 2
;;
-c|--cache)
CLEAN_CACHE="$2"
shift 2
;;
-a|--sass)
CLEAN_SASS="$2"
shift 2
;;
-l|--lock)
CLEAN_LOCK="$2"
shift 2
;;
-d|--dry-run)
DRY_RUN=true
shift
;;
-v|--verbose)
VERBOSE=true
shift
;;
-y|--yes)
AUTO_CONFIRM=true
shift
;;
*)
echo -e "${RED}错误: 未知选项 $1${NC}"
show_help
exit 1
;;
esac
done
# 项目根目录
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# 显示信息
echo -e "${GREEN}🔍 Jekyll 缓存清理工具${NC}"
echo -e "${YELLOW}📁 项目目录: $SCRIPT_DIR${NC}"
echo ""
# 确认操作
if [ "$DRY_RUN" = false ] && [ "$AUTO_CONFIRM" != true ]; then
echo -e "${YELLOW}⚠️ 将清理以下缓存:${NC}"
[ "$CLEAN_SITE" = true ] && echo " - _site"
[ "$CLEAN_CACHE" = true ] && echo " - .jekyll-cache"
[ "$CLEAN_SASS" = true ] && echo " - .sass-cache"
[ "$CLEAN_LOCK" = true ] && echo " - Gemfile.lock"
echo ""
read -p "是否继续? (y/N): " confirm
if [[ ! "$confirm" =~ ^[Yy]$ ]]; then
echo -e "${YELLOW}取消操作${NC}"
exit 0
fi
fi
# 清理函数
clean_item() {
local path="$1"
local item_name="$2"
if [ "$DRY_RUN" = true ]; then
if [ -e "$SCRIPT_DIR/$path" ]; then
echo -e "${YELLOW}📋 [预览] 将删除: $path${NC}"
else
echo -e "${YELLOW}📋 [预览] 目录不存在: $path${NC}"
fi
return
fi
if [ -e "$SCRIPT_DIR/$path" ]; then
if [ "$VERBOSE" = true ]; then
echo -e "${YELLOW}🗑️ 删除: $SCRIPT_DIR/$path${NC}"
fi
rm -rf "$SCRIPT_DIR/$path"
echo -e "${GREEN}✅ 已删除: $item_name${NC}"
else
echo -e "${YELLOW}ℹ️ 不存在: $item_name${NC}"
fi
}
# 执行清理
COUNT=0
if [ "$CLEAN_SITE" = true ]; then
clean_item "_site" "_site 目录"
COUNT=$((COUNT + 1))
fi
if [ "$CLEAN_CACHE" = true ]; then
clean_item ".jekyll-cache" ".jekyll-cache 目录"
COUNT=$((COUNT + 1))
fi
if [ "$CLEAN_SASS" = true ]; then
clean_item ".sass-cache" ".sass-cache 目录"
COUNT=$((COUNT + 1))
fi
if [ "$CLEAN_LOCK" = true ]; then
clean_item "Gemfile.lock" "Gemfile.lock 文件"
COUNT=$((COUNT + 1))
fi
echo ""
if [ "$DRY_RUN" = true ]; then
echo -e "${YELLOW}📋 预览完成(共 $COUNT 项)${NC}"
else
echo -e "${GREEN}✨ 清理完成!共处理 $COUNT 项${NC}"
echo -e "${GREEN}💡 运行 'bundle exec jekyll serve' 重新构建项目${NC}"
fi
复杂用法示例
预览模式
./clean-jekyll-cache.sh -d
只清理 .sass-cache
./clean-jekyll-cache.sh -s false -c false -a true
自动清理所有(包括 Gemfile.lock)
./clean-jekyll-cache.sh -l true -y
显示详细信息
./clean-jekyll-cache.sh -v
注意事项
- 备份: _site 目录包含手动修改的文件,请先备份
- Gemfile.lock: 清理需要重新运行
bundle install - Git 忽略: 确保这些缓存目录已在
.gitignore中配置
集成到工作流
可以作为 npm 脚本或 make 命令集成:
// package.json
{
"scripts": {
"clean": "bash clean-jekyll-cache.sh -y",
"dev": "npm run clean && bundle exec jekyll serve"
}
}
这个脚本会自动识别项目位置,清理 Jekyll 构建过程中生成的临时文件,确保项目从干净状态重新构建。
版权声明: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直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播