얼마 전 한 클라이언트가 원본 디스크의 저장 공간을 확보하기 위해, 확장자와 파일 생성 시점을 기준으로 대량의 파일을 다른 드라이브로 옮겨 달라고 의뢰한 적이 있습니다. 여러 방법을 검토한 결과, 가장 안정적으로 작업을 수행할 수 있는 도구는 마이크로소프트가 Windows에 기본 탑재한 ROBOCOPY 유틸리티였습니다.

이 가이드에서는 ROBOCOPY를 활용해 대량의 파일을 다른 위치로 복사하거나 이동하는 방법을 상황별 명령어와 함께 정리했습니다.
- 참고 자료: Robocopy Complete Reference
ROBOCOPY로 파일 일괄 복사·이동하기
1. PowerShell 또는 명령 프롬프트를 관리자 권한으로 실행합니다.
2. 수행하려는 작업에 따라 아래의 해당 명령어를 입력합니다.
A. 파일만 복사 또는 이동하기 (하위 폴더 제외)
폴더 안의 파일만 다른 폴더로 복사하려면(하위 폴더는 제외) 다음 명령어를 사용합니다.
- ROBOCOPY \"원본 경로\" \"대상 경로\"
예시 1: 'C:\4test' 폴더의 파일들을 'F:\4testbackup' 폴더로 복사
- ROBOCOPY \"C:\4test\" \"F:\4testbackup\"
예시 2: 'C:\4test' 폴더의 모든 파일을 'F:\4testbackup' 폴더로 이동
- ROBOCOPY \"C:\4test\" \"F:\4testbackup\" /MOVE
B. 폴더 전체 복사 또는 이동하기 (파일 + 하위 폴더 포함)
파일과 하위 폴더를 모두 처리하려면 /S 옵션을 추가합니다.
- ROBOCOPY \"원본 경로\" \"대상 경로\" /S
예시 1: 'C:\4test' 폴더의 모든 파일과 하위 폴더를 'F:\4testbackup'으로 복사
- ROBOCOPY \"C:\4test\" \"F:\4testbackup\" /S
예시 2: 'C:\4test' 폴더의 모든 파일과 하위 폴더를 'F:\4testbackup'으로 이동
- ROBOCOPY \"C:\4test\" \"F:\4testbackup\" /S /MOVE
※ 참고: /S는 빈 하위 폴더는 제외합니다. 빈 폴더까지 포함하려면 /E 옵션을 사용하세요. 또한 /MOVE는 복사가 완료된 후 원본 파일과 폴더를 삭제합니다.
C. 특정 시점 이전에 생성된 파일만 복사 또는 이동하기
지정한 기간보다 오래된 파일만 대상으로 하려면 /MINAGE:n 옵션을 사용합니다.
- ROBOCOPY \"원본 경로\" \"대상 경로\" /S /MINAGE:n
* MINAGE:n = 최소 파일 나이(MINimum file AGE) — n일(또는 지정 날짜)보다 새로운 파일은 제외됩니다.
예시 1: 180일(약 6개월) 이전에 생성된 오래된 파일과 하위 폴더를 'C:\4test'에서 'F:\4testbackup'으로 복사
- ROBOCOPY \"C:\4test\" \"F:\4testbackup\" /S /MINAGE:180
예시 2: 같은 조건의 파일과 하위 폴더를 이동
- ROBOCOPY \"C:\4test\" \"F:\4testbackup\" /S /MOVE /MINAGE:180
D. 특정 시점 이후에 생성된 파일만 복사 또는 이동하기
지정한 기간 내에 생성된 최근 파일만 대상으로 하려면 /MAXAGE:n 옵션을 사용합니다.
- ROBOCOPY \"원본 경로\" \"대상 경로\" /S /MAXAGE:n
* MAXAGE:n = 최대 파일 나이(MAXimum file AGE) — n일(또는 지정 날짜)보다 오래된 파일은 제외됩니다.
예시 1: 최근 180일(약 6개월) 이내에 생성된 파일과 하위 폴더를 'C:\4test'에서 'F:\4testbackup'으로 복사
- ROBOCOPY \"C:\4test\" \"F:\4testbackup\" /S /MAXAGE:180
예시 2: 같은 조건의 파일과 하위 폴더를 이동
- ROBOCOPY \"C:\4test\" \"F:\4testbackup\" /S /MOVE /MAXAGE:180
E. 특정 확장자의 파일만 복사 또는 이동하기
확장자를 기준으로 파일을 선택하면서 원본의 폴더 구조를 그대로 유지하려면, 명령어에 와일드카드 파일 패턴을 지정합니다.
- ROBOCOPY \"원본 경로\" \"대상 경로\" *.확장자 /S
예시 1: 'C:\4test' 폴더와 하위 폴더의 모든 JPG 파일을 'F:\4testbackup'으로 복사
- ROBOCOPY \"C:\4test\" \"F:\4testbackup\" *.jpg /S
예시 2: 같은 조건의 JPG 파일을 이동
- ROBOCOPY \"C:\4test\" \"F:\4testbackup\" *.jpg /S /MOVE
F. 확장자 + 날짜 조건을 함께 적용하기
확장자와 파일 생성 시점을 동시에 기준으로 삼아 복사하거나 이동할 수도 있습니다.
- ROBOCOPY \"원본 경로\" \"대상 경로\" *.확장자 /S /MINAGE:n
예시 1: 180일 이전에 생성된 JPG 파일을 'C:\4test' 폴더 및 하위 폴더에서 'F:\4testbackup'으로 복사
- ROBOCOPY \"C:\4test\" \"F:\4testbackup\" *.jpg /S /MINAGE:180
예시 2: 같은 조건의 JPG 파일을 이동
- ROBOCOPY \"C:\4test\" \"F:\4testbackup\" *.jpg /S /MOVE /MINAGE:180
예시 3: 최근 180일 이내에 생성된 JPG 파일을 복사
- ROBOCOPY \"C:\4test\" \"F:\4testbackup\" *.jpg /S /MAXAGE:180
예시 4: 최근 180일 이내에 생성된 JPG 파일을 이동
- ROBOCOPY \"C:\4test\" \"F:\4testbackup\" *.jpg /S /MOVE /MAXAGE:180
※ 팁: /MINAGE와 /MAXAGE에는 일수 대신 YYYYMMDD 형식의 날짜(예: /MINAGE:20220101)를 지정할 수도 있어, 더 정밀한 조건 설정이 가능합니다.
여기까지입니다! 이 가이드가 도움이 되었다면 아래 댓글로 사용 경험을 남겨 주세요. 글이 유익했다면 주변에 공유해 더 많은 분들이 활용할 수 있도록 도와주세요.