IT,전자기기,PC,모바일

실수 시 되돌리기 전략

webdatacloud 2025. 12. 9. 16:15

2️⃣ 실수 시 되돌리기 전략

중요한 포인트부터 솔직하게 말하면:

PowerShell로 지워버린 파일은 휴지통을 안 거치면
_스크립트만으로는 되돌리기 거의 불가능_에 가깝고,
이름 변경/이동은 “미리 준비”를 해두면 꽤 되돌릴 수 있음.

그래서 "되돌리기 전략"은 대부분
👉 “실행 전 준비” + “실행 후 패턴으로 역변환” 구조입니다.


2-1. 작업 전에 “현재 상태 백업” 찍어두기 (강력 추천)

🔹 작업 전 파일 목록 CSV로 저장

 
Get-ChildItem -Recurse -File | Select-Object FullName, Name, LastWriteTime | Export-Csv ".\backup_$(Get-Date -Format 'yyyyMMdd_HHmmss').csv" -NoTypeInformation
  • 현재 폴더 + 하위 폴더 전체 구조를 CSV로 저장
  • 나중에
    • “원래 파일 이름이 뭐였지?”
    • “원래 어느 폴더에 있었지?”
      확인할 수 있는 스냅샷 역할

2-2. “한 번의 규칙”으로 바꿨다면, “반대 규칙”으로 되돌리기

예를 들어:

① 앞에 OK_를 붙였을 때

 
# 적용했던 것 Get-ChildItem | Rename-Item -NewName { "OK_" + $_.Name } # 되돌리기 Get-ChildItem | Rename-Item -NewName { $_.Name -replace "^OK_", "" }

② 뒤에 _최종 붙였을 때

 
# 적용 Get-ChildItem | Rename-Item -NewName { $_.BaseName + "_최종" + $_.Extension } # 되돌리기 Get-ChildItem | Rename-Item -NewName { $_.Name -replace "_최종(\.[^.]+)$", '$1' }

③ 괄호 번호를 없앴던 경우

반대로 괄호 번호를 다시 만들기는 거의 불가능하니,
이런 건 작업 전에 CSV 백업을 꼭 찍어두는 게 안전합니다.


2-3. 폴더 이동 되돌리기

🔹 날짜별/확장자별로 하위 폴더에 옮겨버렸을 때

예를 들어 위에서처럼 2025-01, 2025-02로 나눴다면,
다시 상위 폴더로 올리고 싶을 때:

 
Get-ChildItem -Recurse -File | Move-Item -Destination (Get-Location) -WhatIf
  • 먼저 -WhatIf로 결과 확인 필수
  • 괜찮으면 -WhatIf 제거 후 실행

단,

  • 상위 폴더에 동일 파일 이름이 이미 있으면 덮어쓰거나 에러 발생 가능 → 주의.

2-4. 삭제 관련 되돌리기

1) 휴지통으로 보낸 경우

  • PowerShell로 Remove-Item 사용 대신
    되도록 탐색기에서 Delete 키로 삭제 → 휴지통 복구 가능.

2) PowerShell Remove-Item로 바로 삭제한 경우

  • 휴지통 안 거치고 지워짐 →
    스크립트로 되돌리기 거의 불가능.
  • 복구 가능성:
    • 윈도우 “이전 버전” (볼륨 섀도우 카피, 파일 기록 켜져 있을 때)
    • OneDrive/Google Drive/Dropbox 같은 클라우드 동기화 서비스의 버전 관리/휴지통

2-5. “큰 사고” 예방을 위한 최소 수칙 체크리스트

  1. 반드시 복사본 폴더에서 먼저 테스트
  2. 첫 실행은 무조건 -WhatIf 포함
  3. Remove-Item(삭제)은
    가능하면 안 쓰거나, 테스트 후 휴지통 삭제 방식만 사용
  4. 한 번에 여러 동작을 하지 말고
    • ① 이름 변경
    • ② 폴더 이동
    • ③ 정리
      단계별로 나눠서 실행
  5. 중요한 폴더는
    • 주기적으로 CSV 백업
    • 또는 클라우드/외장하드 백업 병행

  •