결론부터 말하면 Robocopy는 Windows에서 대용량 파일/폴더 복사, 백업, 동기화, 네트워크 공유 폴더 복사에 많이 쓰는 고급 복사 명령어입니다. 일반 copy, xcopy, 탐색기 복사보다 안정적이고 옵션이 많아서 실무에서는 백업 스크립트나 서버 파일 이관에 자주 씁니다.

Microsoft 공식 문서 기준 기본 문법은 아래 형태입니다. ([Microsoft Learn][1])

robocopy <원본폴더> <대상폴더> [파일명] [옵션]

예시:

robocopy "C:\Data" "D:\Backup" /E

위 명령은 C:\Data 폴더 내용을 D:\Backup으로 복사합니다.

1. Robocopy의 주요 기능

1) 폴더 전체 복사

robocopy "C:\Data" "D:\Backup" /E

/E하위 폴더와 빈 폴더까지 모두 복사합니다. /S는 하위 폴더를 복사하지만 빈 폴더는 제외합니다. ([Microsoft Learn][1])


2) 변경된 파일만 복사

Robocopy는 기본적으로 원본과 대상의 파일을 비교해서 이미 같은 파일은 건너뛰고, 변경되었거나 없는 파일만 복사합니다.

즉, 매번 전체 복사를 다시 하는 방식이 아니라 백업/동기화에 유리합니다.

robocopy "C:\Data" "D:\Backup" /E

3) 폴더 미러링

robocopy "C:\Data" "D:\Backup" /MIR

/MIR은 원본과 대상을 똑같이 맞춥니다. 공식 문서 기준 /MIR/E + /PURGE와 같은 의미입니다. 즉, 원본에 없는 파일이 대상에 있으면 대상 파일을 삭제합니다. ([Microsoft Learn][1])

주의할 점은 이겁니다.

robocopy "C:\Data" "D:\Backup" /MIR

이 경우 C:\Data에 없는 파일이 D:\Backup에 있으면 삭제됩니다. 백업 대상 폴더를 잘못 지정하면 데이터가 날아갈 수 있으므로 /MIR은 특히 조심해야 합니다.

실무에서는 먼저 테스트 모드로 확인하는 것을 추천합니다.

robocopy "C:\Data" "D:\Backup" /MIR /L

/L은 실제 복사/삭제를 하지 않고 “무엇이 처리될지” 목록만 보여줍니다. ([Microsoft Learn][1])


4) 네트워크 공유 폴더 복사

robocopy "C:\Data" "\\192.168.0.10\Backup" /E /Z

/Z는 재시작 가능 모드입니다. 네트워크가 끊겼다가 다시 연결되면 처음부터 다시 복사하지 않고 이어서 복사할 수 있습니다. ([Microsoft Learn][1])

공유 폴더 작업에서는 아래처럼 많이 씁니다.

robocopy "C:\Data" "\\SERVER\Share\DataBackup" /E /Z /R:3 /W:5

의미는 다음과 같습니다.

옵션 의미
/E 하위 폴더, 빈 폴더 포함 복사
/Z 끊겨도 이어서 복사
/R:3 실패 시 3번 재시도
/W:5 재시도 사이 5초 대기

기본값은 재시도 1,000,000번, 대기 30초라서 그대로 두면 작업이 멈춘 것처럼 오래 걸릴 수 있습니다. 그래서 실무에서는 /R, /W를 거의 항상 지정하는 편이 좋습니다. ([Microsoft Learn][1])


5) 로그 저장

robocopy "C:\Data" "D:\Backup" /E /LOG:"C:\Logs\backup.log"

로그를 남기면 어떤 파일이 복사됐고, 실패했는지 확인할 수 있습니다. Microsoft도 Robocopy 실행 시 로그 파일 생성을 권장합니다. ([Microsoft Learn][1])

화면에도 보면서 로그도 저장하려면:

robocopy "C:\Data" "D:\Backup" /E /LOG:"C:\Logs\backup.log" /TEE

기존 로그 뒤에 이어 쓰려면:

robocopy "C:\Data" "D:\Backup" /E /LOG+:"C:\Logs\backup.log"

6) 멀티스레드 복사

robocopy "C:\Data" "D:\Backup" /E /MT:16

/MT:n은 멀티스레드 복사입니다. n은 1~128 사이 값을 사용할 수 있고, 기본값은 8입니다. 대량 파일 복사 시 속도 향상에 도움이 됩니다. ([Microsoft Learn][1])

실무 추천값은 보통 이 정도입니다.

/MT:8
/MT:16
/MT:32

너무 크게 잡으면 디스크, 네트워크, 서버 부하가 올라갈 수 있습니다.


2. 자주 쓰는 명령어 예시

일반 백업용

robocopy "C:\Work" "D:\Backup\Work" /E /R:3 /W:5 /LOG:"C:\Logs\work_backup.log"

가장 무난한 백업 명령입니다.


네트워크 공유 폴더로 백업

robocopy "C:\Work" "\\192.168.0.10\backup\Work" /E /Z /R:3 /W:5 /LOG:"C:\Logs\network_backup.log"

공유 폴더나 NAS로 복사할 때 적합합니다.


원본과 대상을 완전히 동일하게 동기화

robocopy "C:\Work" "D:\Backup\Work" /MIR /R:3 /W:5 /LOG:"C:\Logs\mirror.log"

주의: 대상에만 있는 파일은 삭제됩니다.

먼저 테스트:

robocopy "C:\Work" "D:\Backup\Work" /MIR /L

특정 확장자만 복사

robocopy "C:\Logs" "D:\Backup\Logs" *.log /E

*.log 파일만 복사합니다.


특정 폴더 제외

robocopy "C:\Project" "D:\Backup\Project" /E /XD "node_modules" ".git" "bin" "obj"

개발 프로젝트 백업할 때 유용합니다.


특정 파일 제외

robocopy "C:\Project" "D:\Backup\Project" /E /XF "*.tmp" "*.log"

임시 파일이나 로그 파일 제외할 때 사용합니다.


3. 실무에서 추천하는 기본 형태

개인적으로 가장 안전하게 시작할 명령은 이 형태입니다.

robocopy "원본경로" "대상경로" /E /Z /R:3 /W:5 /NP /LOG:"C:\Logs\copy.log"

옵션 의미:

옵션 의미
/E 하위 폴더, 빈 폴더 포함
/Z 중단 시 이어서 복사
/R:3 실패 시 3번 재시도
/W:5 재시도 간 5초 대기
/NP 진행률 표시 생략
/LOG 로그 저장

대량 복사라면 /MT:16 정도를 추가하면 됩니다.

robocopy "원본경로" "대상경로" /E /Z /R:3 /W:5 /MT:16 /NP /LOG:"C:\Logs\copy.log"

4. 주의해야 할 옵션

옵션 주의점
/MIR 대상에만 있는 파일 삭제
/PURGE 원본에 없는 대상 파일 삭제
/MOV 파일 복사 후 원본 파일 삭제
/MOVE 파일/폴더 복사 후 원본 삭제
/COPYALL 권한, 소유자, 감사 정보까지 복사. 권한 문제 발생 가능
/R 생략 기본 재시도 횟수가 너무 커서 오래 멈춘 것처럼 보일 수 있음

특히 /MIR, /PURGE, /MOVE, /MOV는 삭제가 발생할 수 있으므로 처음에는 반드시 /L로 테스트하는 게 좋습니다.

5. Robocopy 결과 코드

Robocopy는 일반 명령어와 다르게 0이 아니라고 무조건 실패는 아닙니다. 공식 문서 기준 8 이상이면 하나 이상의 복사 실패가 있었다고 보면 됩니다. ([Microsoft Learn][1])

코드 의미
0 복사할 파일 없음, 실패 없음
1 모든 파일 복사 성공
2 대상에 추가 파일 있음, 실패 없음
3 일부 복사됨 + 대상에 추가 파일 있음
8 이상 복사 실패 발생

배치 파일에서 성공/실패 판단할 때는 보통 이렇게 처리합니다.

robocopy "C:\Data" "D:\Backup" /E /R:3 /W:5

if %ERRORLEVEL% GEQ 8 (
    echo 복사 실패
) else (
    echo 복사 성공 또는 변경 없음
)

6. 한 줄 요약

Robocopy는 Windows에서 안정적으로 폴더를 복사/백업/동기화하는 명령어이고, 실무에서는 보통 아래 형태로 시작하면 됩니다.

robocopy "원본경로" "대상경로" /E /Z /R:3 /W:5 /MT:16 /LOG:"C:\Logs\copy.log"

단, 원본과 대상을 완전히 같게 맞추는 /MIR은 대상 파일을 삭제할 수 있으므로 반드시 /L로 먼저 확인하는 것을 추천합니다.

[1]: https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/robocopy “Robocopy Microsoft Learn”

Categories:

Updated: