#!/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"exit1}echo"세이브 경로: $SAVE_PATH"echo""# user2로 시작하는 파일들과 Restore_Points2 폴더 확인echo"압축할 파일 및 폴더 목록:"if[-d"Restore_Points2"];thenecho"- Restore_Points2/"elseecho"- Restore_Points2/ (디렉토리 없음)"fils-lauser2*2>/dev/null|whilereadline;doecho"- $(echo"$line"|awk'{print $9}')"doneecho""echo"압축 파일명: $ARCHIVE_NAME"echo""# tar.gz 압축 실행echo"압축 중..."tar-czf"$ARCHIVE_NAME"Restore_Points2/user2*2>/dev/null
# 압축 결과 확인if[$?-eq0];thenecho"✓ 압축 완료: $ARCHIVE_NAME"echo"파일 크기: $(ls-lh"$ARCHIVE_NAME"|awk'{print $5}')"elseecho"✗ 압축 실패"exit1fi
최신 세이브 파일 복원
#!/bin/bash# Hollow Knight Silksong 세이브 파일 경로SAVE_PATH="$HOME/.config/unity3d/Team Cherry/Hollow Knight Silksong/189523970"# 세이브 디렉토리로 이동# Change to save directorycd"$SAVE_PATH"||{echo"✗ 세이브 디렉토리를 찾을 수 없습니다: $SAVE_PATH"echo"✗ Save directory not found: $SAVE_PATH"exit1}echo"세이브 경로: $SAVE_PATH"echo"Save path: $SAVE_PATH"echo""# 백업 파일 찾기# Find backup filesBACKUP_FILES=($(ls-tsilksong_user2_backup_*.tar.gz2>/dev/null))# 백업 파일이 없는 경우# If no backup files foundif[${#BACKUP_FILES[@]}-eq0];thenecho"✗ 백업 파일을 찾을 수 없습니다."echo"✗ No backup files found."exit1fi# 최신 백업 파일 (첫 번째 파일)# Latest backup file (first file)LATEST_BACKUP="${BACKUP_FILES[0]}"echo"발견된 백업 파일 목록 (최신순):"echo"Found backup files (newest first):"foriin"${!BACKUP_FILES[@]}";doFILE="${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-eq0];thenecho"→ [최신/Latest] $FILE ($SIZE) - $DATE"elseecho" [$((i+1))] $FILE ($SIZE) - $DATE"fidoneecho""# 최신 백업 파일 정보 출력# Display latest backup file infoecho"복원할 파일: $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 contentsecho"압축 파일 내용:"echo"Archive contents:"tar-tzf"$LATEST_BACKUP"2>/dev/null|head-n20echo""# 사용자 확인# User confirmationread-p"이 백업을 복원하시겠습니까? (y/n): "-n1-r
echo""if[[!$REPLY=~^[Yy]$]];thenecho"복원이 취소되었습니다."echo"Restoration cancelled."exit0fi# # 기존 파일 백업 (안전장치)# # 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 filesecho"기존 세이브 파일 삭제 중..."echo"Removing existing save files..."rm-rfRestore_Points2/
rm-fuser2*
echo"✓ 기존 파일 삭제 완료"echo"✓ Existing files removed"echo""# 압축 해제# Extract archiveecho"백업 복원 중..."echo"Restoring backup..."tar-xzf"$LATEST_BACKUP"# 복원 결과 확인# Check restoration resultif[$?-eq0];thenecho""echo"✓ 복원 완료!"echo"✓ Restoration complete!"echo""echo"복원된 파일 목록:"echo"Restored files:"if[-d"Restore_Points2"];thenecho"- Restore_Points2/"fils-lhuser2*2>/dev/null|whilereadline;doecho"- $(echo"$line"|awk'{print $9, $5}')"doneecho""echo"임시 백업 파일: $TEMP_BACKUP"echo"Temporary backup: $TEMP_BACKUP"echo"(문제가 없다면 나중에 삭제하세요)"echo"(You can delete this later if everything works fine)"elseecho""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"# fiexit1fi