From 1eda2e5c379e0cb1f26b410864a33f41e00433a4 Mon Sep 17 00:00:00 2001 From: selfrelease Date: Mon, 15 Jun 2026 10:09:15 +0800 Subject: [PATCH] =?UTF-8?q?chore(backup):=20=E6=89=93=E5=8C=85=E6=97=B6?= =?UTF-8?q?=E6=8E=92=E9=99=A4=E4=BE=9D=E8=B5=96/=E7=BC=96=E8=AF=91?= =?UTF-8?q?=E4=BA=A7=E7=89=A9/=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 排除 node_modules、dist、.next、.cache、.turbo、coverage 等, find 计数与 zip -x 规则保持一致以保证进度条准确,大幅减小备份体积。 --- baidu-backup.sh | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/baidu-backup.sh b/baidu-backup.sh index 1ed33a6..ff4a8c1 100755 --- a/baidu-backup.sh +++ b/baidu-backup.sh @@ -46,13 +46,27 @@ echo "[1/5] 📦 打包项目文件..." rm -f "$ZIP_FILE" cd "$PARENT_DIR" -# 先统计文件总数 -TOTAL_FILES=$(find "$PROJECT_NAME" -not -path "${PROJECT_NAME}/.git/*" -type f | wc -l | tr -d ' ') -echo " 📊 共 ${TOTAL_FILES} 个文件" +# 需要排除的目录:依赖、编译产物、缓存(减小备份体积) +ZIP_EXCLUDES=( + "${PROJECT_NAME}/.git/*" + "*/node_modules/*" + "*/.next/*" + "*/dist/*" + "*/.cache/*" + "*/.turbo/*" + "*/coverage/*" + "*.DS_Store" +) + +# 先统计文件总数(与上面的排除规则保持一致,保证进度条准确) +TOTAL_FILES=$(find "$PROJECT_NAME" \ + -type d \( -name node_modules -o -name .git -o -name .next -o -name dist -o -name .cache -o -name .turbo -o -name coverage \) -prune \ + -o -type f -print | wc -l | tr -d ' ') +echo " 📊 共 ${TOTAL_FILES} 个文件(已排除依赖/编译/缓存)" # 打包并实时显示百分比 COUNTER=0 -zip -r "$ZIP_FILE" "$PROJECT_NAME" -x "${PROJECT_NAME}/.git/*" 2>&1 | while IFS= read -r line; do +zip -r "$ZIP_FILE" "$PROJECT_NAME" -x "${ZIP_EXCLUDES[@]}" 2>&1 | while IFS= read -r line; do COUNTER=$((COUNTER + 1)) PCT=$((COUNTER * 100 / TOTAL_FILES)) if [ $PCT -gt 100 ]; then PCT=100; fi