#!/bin/bash # 打包项目为 tar.gz # 用法: bash pack.sh <项目目录> <项目名> set -e PROJECT_DIR="$1" PROJECT_NAME="$2" if [ -z "$PROJECT_DIR" ] || [ -z "$PROJECT_NAME" ]; then echo "用法: bash pack.sh <项目目录> <项目名>" exit 1 fi if [ ! -d "$PROJECT_DIR" ]; then echo "错误:项目目录不存在: $PROJECT_DIR" exit 1 fi # 输出文件 OUTPUT="/tmp/cloud-deploy-${PROJECT_NAME}-$(date +%s).tar.gz" # 打包(排除无关文件) tar -czf "$OUTPUT" \ --exclude='node_modules' \ --exclude='.git' \ --exclude='.env' \ --exclude='*.log' \ --exclude='.DS_Store' \ --exclude='__pycache__' \ --exclude='.pytest_cache' \ --exclude='*.pyc' \ -C "$PROJECT_DIR" . FILE_SIZE=$(du -h "$OUTPUT" | cut -f1) FILE_COUNT=$(tar -tzf "$OUTPUT" | wc -l) echo "✅ 打包完成" echo " 文件: $OUTPUT" echo " 大小: $FILE_SIZE" echo " 文件数: $FILE_COUNT" echo "$OUTPUT"