Skip to content

Hollow Knight: Silksong

Save Directory

Linux
~/.config/unity3d/Team Cherry/Hollow Knight Silksong/189523970/

세이브 파일 백업

#!/bin/bash

# Hollow Knight Silksong 세이브 파일 경로
SAVE_PATH="$HOME/.config/unity3d/Team Cherry/Hollow Knight Silksong/189523970"

# 현재 날짜와 시간을 YYYY-MM-DD_HH-MM-SS 형식으로 가져오기
DATETIME=$(date +"%Y-%m-%d_%H-%M-%S")

# 압축 파일명 설정 (홈 디렉토리에 저장)
ARCHIVE_NAME="$SAVE_PATH/silksong_user2_backup_${DATETIME}.tar.gz"

# 세이브 디렉토리로 이동
cd "$SAVE_PATH" || {
    echo "✗ 세이브 디렉토리를 찾을 수 없습니다: $SAVE_PATH"
    exit 1
}

echo "세이브 경로: $SAVE_PATH"
echo ""

# user2로 시작하는 파일들과 Restore_Points2 폴더 확인
echo "압축할 파일 및 폴더 목록:"
if [ -d "Restore_Points2" ]; then
    echo "- Restore_Points2/"
else
    echo "- Restore_Points2/ (디렉토리 없음)"
fi

ls -la user2* 2>/dev/null | while read line; do
    echo "- $(echo "$line" | awk '{print $9}')"
done

echo ""
echo "압축 파일명: $ARCHIVE_NAME"
echo ""

# tar.gz 압축 실행
echo "압축 중..."
tar -czf "$ARCHIVE_NAME" Restore_Points2/ user2* 2>/dev/null

# 압축 결과 확인
if [ $? -eq 0 ]; then
    echo "✓ 압축 완료: $ARCHIVE_NAME"
    echo "파일 크기: $(ls -lh "$ARCHIVE_NAME" | awk '{print $5}')"
else
    echo "✗ 압축 실패"
    exit 1
fi

최신 세이브 파일 복원

#!/bin/bash

# Hollow Knight Silksong 세이브 파일 경로
SAVE_PATH="$HOME/.config/unity3d/Team Cherry/Hollow Knight Silksong/189523970"

# 세이브 디렉토리로 이동
# Change to save directory
cd "$SAVE_PATH" || {
    echo "✗ 세이브 디렉토리를 찾을 수 없습니다: $SAVE_PATH"
    echo "✗ Save directory not found: $SAVE_PATH"
    exit 1
}

echo "세이브 경로: $SAVE_PATH"
echo "Save path: $SAVE_PATH"
echo ""

# 백업 파일 찾기
# Find backup files
BACKUP_FILES=($(ls -t silksong_user2_backup_*.tar.gz 2>/dev/null))

# 백업 파일이 없는 경우
# If no backup files found
if [ ${#BACKUP_FILES[@]} -eq 0 ]; then
    echo "✗ 백업 파일을 찾을 수 없습니다."
    echo "✗ No backup files found."
    exit 1
fi

# 최신 백업 파일 (첫 번째 파일)
# Latest backup file (first file)
LATEST_BACKUP="${BACKUP_FILES[0]}"

echo "발견된 백업 파일 목록 (최신순):"
echo "Found backup files (newest first):"
for i in "${!BACKUP_FILES[@]}"; do
    FILE="${BACKUP_FILES[$i]}"
    SIZE=$(ls -lh "$FILE" | awk '{print $5}')
    DATE=$(stat -c %y "$FILE" 2>/dev/null || stat -f "%Sm" "$FILE" 2>/dev/null)
    if [ $i -eq 0 ]; then
        echo "→ [최신/Latest] $FILE ($SIZE) - $DATE"
    else
        echo "  [$((i+1))] $FILE ($SIZE) - $DATE"
    fi
done
echo ""

# 최신 백업 파일 정보 출력
# Display latest backup file info
echo "복원할 파일: $LATEST_BACKUP"
echo "File to restore: $LATEST_BACKUP"
echo "파일 크기: $(ls -lh "$LATEST_BACKUP" | awk '{print $5}')"
echo "File size: $(ls -lh "$LATEST_BACKUP" | awk '{print $5}')"
echo ""

# 압축 내용 미리보기
# Preview archive contents
echo "압축 파일 내용:"
echo "Archive contents:"
tar -tzf "$LATEST_BACKUP" 2>/dev/null | head -n 20
echo ""

# 사용자 확인
# User confirmation
read -p "이 백업을 복원하시겠습니까? (y/n): " -n 1 -r
echo ""
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
    echo "복원이 취소되었습니다."
    echo "Restoration cancelled."
    exit 0
fi

# # 기존 파일 백업 (안전장치)
# # Backup existing files (safety measure)
# echo "기존 파일을 임시 백업 중..."
# echo "Creating temporary backup of existing files..."
# TEMP_BACKUP="temp_before_restore_$(date +"%Y%m%d_%H%M%S").tar.gz"
# tar -czf "$TEMP_BACKUP" Restore_Points2/ user2* 2>/dev/null
# if [ $? -eq 0 ]; then
#     echo "✓ 임시 백업 완료: $TEMP_BACKUP"
#     echo "✓ Temporary backup created: $TEMP_BACKUP"
# else
#     echo "⚠ 임시 백업 실패 (계속 진행)"
#     echo "⚠ Temporary backup failed (continuing anyway)"
# fi
# echo ""

# 기존 파일 삭제
# Delete existing files
echo "기존 세이브 파일 삭제 중..."
echo "Removing existing save files..."
rm -rf Restore_Points2/
rm -f user2*
echo "✓ 기존 파일 삭제 완료"
echo "✓ Existing files removed"
echo ""

# 압축 해제
# Extract archive
echo "백업 복원 중..."
echo "Restoring backup..."
tar -xzf "$LATEST_BACKUP"

# 복원 결과 확인
# Check restoration result
if [ $? -eq 0 ]; then
    echo ""
    echo "✓ 복원 완료!"
    echo "✓ Restoration complete!"
    echo ""
    echo "복원된 파일 목록:"
    echo "Restored files:"
    if [ -d "Restore_Points2" ]; then
        echo "- Restore_Points2/"
    fi
    ls -lh user2* 2>/dev/null | while read line; do
        echo "- $(echo "$line" | awk '{print $9, $5}')"
    done
    echo ""
    echo "임시 백업 파일: $TEMP_BACKUP"
    echo "Temporary backup: $TEMP_BACKUP"
    echo "(문제가 없다면 나중에 삭제하세요)"
    echo "(You can delete this later if everything works fine)"
else
    echo ""
    echo "✗ 복원 실패!"
    echo "✗ Restoration failed!"
    echo ""
    # if [ -f "$TEMP_BACKUP" ]; then
    #     echo "임시 백업에서 롤백 중..."
    #     echo "Rolling back from temporary backup..."
    #     tar -xzf "$TEMP_BACKUP"
    #     echo "✓ 롤백 완료"
    #     echo "✓ Rollback complete"
    # fi
    exit 1
fi

See also

Favorite site