本文目录导读:

#!/bin/bash
# Hugo 缓存清理脚本
# 使用: bash clean-hugo-cache.sh
echo "========================================"
echo " Hugo 缓存与生成文件清理工具"
echo "========================================"
# 1. 清理 Hugo 默认缓存目录
CACHE_DIR="$HOME/.cache/hugo"
if [ -d "$CACHE_DIR" ]; then
echo "📁 删除 Hugo 缓存目录: $CACHE_DIR"
rm -rf "$CACHE_DIR"
echo "✅ 缓存已清除"
else
echo "ℹ️ 缓存目录不存在: $CACHE_DIR"
fi
# 2. 清理当前目录下的生成文件
GENERATED_DIRS=("public" "resources" "_vendor")
for dir in "${GENERATED_DIRS[@]}"; do
if [ -d "$dir" ]; then
echo "📁 删除目录: $dir"
rm -rf "$dir"
echo "✅ 已删除 $dir"
else
echo "ℹ️ 目录不存在: $dir"
fi
done
# 3. 清理 Hugo 临时文件
TEMP_FILES=("hugo.lock" ".hugo_build.lock")
for file in "${TEMP_FILES[@]}"; do
if [ -f "$file" ]; then
echo "📄 删除文件: $file"
rm -f "$file"
echo "✅ 已删除 $file"
else
echo "ℹ️ 文件不存在: $file"
fi
done
echo ""
echo "========================================"
echo " ✅ 清理完成"
echo " 下次运行 hugo 将重新生成所有文件"
echo "========================================"
使用方法
创建脚本文件
# 创建文件并粘贴上述脚本内容 nano clean-hugo-cache.sh
添加执行权限
chmod +x clean-hugo-cache.sh
运行脚本
# 在 Hugo 项目根目录运行 ./clean-hugo-cache.sh
高级版本(带确认和选项)
#!/bin/bash
# Hugo 高级缓存清理脚本
VERSION="1.0.0"
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
print_usage() {
echo "用法: $0 [选项]"
echo "选项:"
echo " -y, --yes 直接执行,跳过确认"
echo " -v, --verbose 显示详细信息"
echo " -d, --dry-run 模拟运行,不实际删除"
echo " -h, --help 显示帮助信息"
}
VERBOSE=false
DRY_RUN=false
SKIP_CONFIRM=false
# 解析参数
while [[ $# -gt 0 ]]; do
case $1 in
-y|--yes)
SKIP_CONFIRM=true
shift
;;
-v|--verbose)
VERBOSE=true
shift
;;
-d|--dry-run)
DRY_RUN=true
shift
;;
-h|--help)
print_usage
exit 0
;;
*)
echo "未知选项: $1"
print_usage
exit 1
;;
esac
done
echo -e "${YELLOW}========================================"
echo " Hugo 缓存清理工具 v$VERSION"
echo -e "========================================${NC}"
# 显示将要删除的内容
if [ "$VERBOSE" = true ]; then
echo ""
echo "将要清理的项目:"
echo " - Hugo 缓存目录: ~/.cache/hugo"
echo " - 生成目录: public/ resources/ _vendor/"
echo " - 临时文件: hugo.lock .hugo_build.lock"
fi
# 确认操作
if [ "$SKIP_CONFIRM" = false ] && [ "$DRY_RUN" = false ]; then
echo ""
read -p "确认清理所有缓存?(y/N): " confirm
if [[ ! "$confirm" =~ ^[Yy]$ ]]; then
echo -e "${YELLOW}操作已取消${NC}"
exit 0
fi
fi
# 执行清理
clean_item() {
local item=$1
local path=$2
if [ -e "$path" ]; then
if [ "$DRY_RUN" = true ]; then
echo -e "${YELLOW}[DRY RUN] 将删除: $path${NC}"
else
rm -rf "$path"
echo -e "${GREEN}已删除: $path${NC}"
fi
else
if [ "$VERBOSE" = true ]; then
echo -e "跳过不存在: $path"
fi
fi
}
echo ""
echo "开始清理..."
# 清理 Hugo 缓存
clean_item "Hugo缓存" "$HOME/.cache/hugo"
# 清理生成目录
for dir in "public" "resources" "_vendor"; do
clean_item "生成目录" "$(pwd)/$dir"
done
# 清理临时文件
for file in "hugo.lock" ".hugo_build.lock"; do
clean_item "临时文件" "$(pwd)/$file"
done
echo ""
if [ "$DRY_RUN" = true ]; then
echo -e "${YELLOW}模拟运行完成,没有实际删除文件${NC}"
else
echo -e "${GREEN}清理完成!${NC}"
echo "下次运行 hugo 将重新生成所有文件"
fi
自动清理(Cron 定时任务)
如果你想要自动定期清理 Hugo 缓存:
# 编辑 crontab crontab -e # 添加以下行(每周日凌晨 3 点清理) 0 3 * * 0 /path/to/clean-hugo-cache.sh -y >> /dev/null 2>&1
注意事项
- 备份重要文件:确保
public/目录下的自定义内容已备份 - 主题缓存:如果使用 Git 子模块的主题,
_vendor目录的清理不会影响主题文件 - Docker 环境:如果在 Docker 中使用,可能需要同时清理 Docker 卷中的缓存
这个脚本不会影响你的源文件(content/, themes/, config.toml 等)。
版权声明: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直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播