dramaling-app/sop/scripts/archive_file.sh

48 lines
1.3 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# 簡化版文件歸檔腳本 (扁平化歸檔)
# 使用方法: ./archive_file.sh <文件路徑> <原因>
# 檔案格式: YYYYMMDDHHMMSS_原檔名
if [ $# -lt 2 ]; then
echo "使用方法: $0 文件路徑 原因"
exit 1
fi
SOURCE_FILE="$1"
REASON="$2"
OPERATOR="${3:-Claude Code}"
# 檢查文件是否存在
if [ ! -f "$SOURCE_FILE" ]; then
echo "❌ 文件不存在: $SOURCE_FILE"
exit 1
fi
# 創建歸檔目錄 (直接使用 sop/archive不建立日期子資料夾)
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
ARCHIVE_DIR="$SCRIPT_DIR/../archive"
LOG_DIR="$SCRIPT_DIR/../archive/logs"
mkdir -p "$ARCHIVE_DIR"
mkdir -p "$LOG_DIR"
# 生成新文件名 (完整時間戳記前綴 YYYYMMDDHHMMSS)
FILENAME=$(basename "$SOURCE_FILE")
TIMESTAMP=$(date '+%Y%m%d%H%M%S')
ARCHIVED_FILENAME="${TIMESTAMP}_${FILENAME}"
TARGET_FILE="$ARCHIVE_DIR/$ARCHIVED_FILENAME"
# 移動文件
mv "$SOURCE_FILE" "$TARGET_FILE"
if [ $? -eq 0 ]; then
echo "✅ 歸檔成功: $SOURCE_FILE -> $TARGET_FILE"
# 記錄日誌
LOG_ENTRY="[$(date '+%Y-%m-%d %H:%M:%S')] ARCHIVE | $SOURCE_FILE -> $TARGET_FILE | $OPERATOR | $REASON"
echo "$LOG_ENTRY" >> "$LOG_DIR/file_migration.log"
echo "📋 日誌記錄: $LOG_ENTRY"
else
echo "❌ 歸檔失敗: $SOURCE_FILE"
exit 1
fi