Windows에서 파일을 복사할 때는 대부분 파일 탐색기에서 드래그하거나 복사·붙여넣기를 사용합니다.
하지만 파일이 많거나 폴더 구조를 그대로 복사해야 할 때, 또는 반복 작업을 명령어로 처리하고 싶을 때는 CMD의 파일 복사 명령어가 훨씬 편리할 수 있습니다.
Windows CMD에서 대표적으로 사용할 수 있는 파일 복사 명령어는 다음 세 가지입니다.
copy
xcopy
robocopy
처음 보면 모두 파일을 복사하는 명령어처럼 보이기 때문에 어떤 상황에서 무엇을 사용해야 하는지 헷갈릴 수 있습니다.
하지만 세 명령어는 성격이 다릅니다.
copy는 단순한 파일 복사에 적합하고, xcopy는 폴더와 하위 디렉터리까지 복사할 수 있으며, robocopy는 대량 파일 복사나 폴더 동기화 같은 보다 복잡한 작업에 적합합니다.
이번 글에서는 copy, xcopy, robocopy 차이부터 실제 사용 예제, 폴더 전체 복사, 하위 폴더 포함, 파일 덮어쓰기, 대량 파일 복사, 백업 작업에서 어떤 명령어를 선택해야 하는지까지 자세히 알아보겠습니다.
copy 명령어란?
copy는 Windows CMD에서 가장 기본적인 파일 복사 명령어입니다.
사용법은 매우 간단합니다.
copy 원본파일 대상경로
예를 들어 현재 폴더에 있는 test.txt 파일을 D 드라이브의 Backup 폴더로 복사하려면 다음과 같이 사용할 수 있습니다.
copy test.txt D:\Backup\
정상적으로 복사되면 복사된 파일 수와 관련된 메시지가 표시될 수 있습니다.
copy 명령어는 파일 하나 또는 몇 개를 간단하게 복사할 때 사용하기 좋습니다.
반면 폴더 전체를 하위 폴더까지 복사하는 작업에는 적합하지 않습니다.
copy로 특정 파일 하나 복사하기
예를 들어 바탕 화면의 report.txt를 D 드라이브로 복사한다고 가정하겠습니다.
다음과 같이 사용할 수 있습니다.
copy "%USERPROFILE%\Desktop\report.txt" "D:\Backup\"
경로에 공백이 포함될 가능성이 있다면 따옴표를 사용하는 것이 좋습니다.
예를 들어 파일 이름이 다음과 같다면:
monthly report.txt
다음처럼 작성합니다.
copy "monthly report.txt" "D:\Backup\"
CMD에서 파일 경로를 다룰 때는 공백 때문에 오류가 발생하는 경우가 많기 때문에 전체 경로를 따옴표로 감싸는 습관을 들이면 좋습니다.
copy로 파일 이름을 바꾸면서 복사할 수 있을까?
가능합니다.
예를 들어:
copy report.txt report_backup.txt
라고 입력하면 report.txt를 복사하면서 대상 파일 이름을 report_backup.txt로 지정할 수 있습니다.
다른 폴더로 복사하면서 이름을 바꿀 수도 있습니다.
copy report.txt "D:\Backup\report_2026.txt"
이처럼 copy는 단순한 복사 작업에서는 매우 직관적입니다.
여러 파일을 copy로 복사하기
와일드카드 *를 이용하면 특정 확장자의 여러 파일을 복사할 수 있습니다.
예를 들어 현재 폴더의 모든 .txt 파일을 D:\Backup으로 복사하려면:
copy *.txt D:\Backup\
처럼 사용할 수 있습니다.
다만 와일드카드는 예상보다 많은 파일을 대상으로 할 수 있으므로 실행 전에:
dir *.txt
로 실제 대상 파일을 확인하는 것이 좋습니다.
특히 중요한 업무 폴더에서는 복사 범위를 정확하게 확인하는 습관이 필요합니다.
copy 명령어의 한계
copy는 간단하지만 기능도 단순합니다.
대표적으로 다음과 같은 상황에서는 불편할 수 있습니다.
폴더 전체 복사
하위 폴더 포함 복사
대량 파일 복사
변경된 파일만 복사
복사 실패 시 재시도
폴더 동기화
이런 작업에서는 xcopy 또는 robocopy가 더 적합합니다.
xcopy 명령어란?
xcopy는 copy보다 확장된 복사 기능을 제공하는 명령어입니다.
파일뿐 아니라 폴더와 하위 디렉터리까지 복사할 수 있습니다.
기본 형태는 다음과 같습니다.
xcopy 원본 대상
예를 들어:
xcopy C:\Data D:\Backup\Data
처럼 사용할 수 있습니다.
하지만 실제로 폴더 구조를 제대로 복사하려면 옵션을 함께 사용하는 경우가 많습니다.
xcopy로 폴더 전체 복사하기
폴더와 하위 폴더까지 복사하고 싶다면 /E 옵션을 사용할 수 있습니다.
예를 들어:
xcopy "C:\Data" "D:\Backup\Data" /E
이 명령은 하위 디렉터리를 포함해 복사합니다.
/E는 빈 폴더까지 포함하는 데 사용될 수 있습니다.
비어 있지 않은 하위 폴더만 복사하는 옵션과 차이가 있으므로 정확한 동작이 필요하다면 도움말을 확인하는 것이 좋습니다.
xcopy /?
xcopy /I 옵션은 왜 많이 사용할까?
xcopy를 사용할 때 대상 경로가 파일인지 폴더인지 물어보는 경우가 있습니다.
이런 상황에서 /I 옵션을 함께 사용하는 경우가 많습니다.
예를 들어:
xcopy "C:\Data" "D:\Backup\Data" /E /I
처럼 사용할 수 있습니다.
/I는 대상이 존재하지 않을 때 여러 파일을 복사하는 상황에서 대상을 디렉터리로 간주하도록 하는 데 도움을 줍니다.
폴더 복사 작업에서 자주 볼 수 있는 이유입니다.
xcopy /Y 옵션은 무엇일까?
같은 이름의 파일이 대상 폴더에 이미 존재하면 덮어쓸지 묻는 메시지가 나타날 수 있습니다.
이때 /Y 옵션을 사용하면 덮어쓰기 확인 메시지를 표시하지 않도록 할 수 있습니다.
예:
xcopy "C:\Data" "D:\Backup\Data" /E /I /Y
자동화 작업에서는 편리하지만 주의해야 합니다.
기존 파일을 실수로 덮어쓸 가능성이 있기 때문입니다.
따라서 /Y는 원본과 대상의 관계를 정확히 알고 있을 때 사용하는 것이 좋습니다.
xcopy는 언제 사용하면 좋을까?
xcopy는 다음과 같은 상황에서 사용할 수 있습니다.
폴더 전체를 복사해야 할 때
하위 폴더까지 포함해야 할 때
빈 폴더까지 복사해야 할 때
간단한 배치 파일에서 폴더 복사를 자동화할 때
하지만 더 큰 규모의 파일 복사나 안정적인 재시도, 동기화 기능까지 필요하다면 robocopy가 더 적합합니다.
robocopy 명령어란?
robocopy는 Robust File Copy의 의미를 가진 Windows 파일 복사 도구입니다.
단순히 파일을 하나 복사하는 것보다 대량 파일 복사, 폴더 구조 유지, 복사 실패 재시도, 변경된 파일 중심 복사, 폴더 동기화 등에 강점이 있습니다.
기본 사용법은 다음과 같습니다.
robocopy 원본폴더 대상폴더
예를 들어:
robocopy "C:\Data" "D:\Backup\Data"
처럼 사용할 수 있습니다.
여기서 중요한 차이가 있습니다.
copy나 xcopy는 파일 이름을 직접 지정하는 형태를 많이 사용하지만, robocopy는 원본 폴더와 대상 폴더를 중심으로 사용하는 방식이 일반적입니다.
robocopy로 하위 폴더까지 복사하기
하위 폴더를 포함하려면 /E 옵션을 사용할 수 있습니다.
예:
robocopy "C:\Data" "D:\Backup\Data" /E
이 명령은 하위 디렉터리와 빈 디렉터리까지 포함해서 복사하는 데 사용할 수 있습니다.
대용량 폴더 백업에서 자주 쓰이는 기본 조합 중 하나입니다.
robocopy /MIR는 왜 주의해야 할까?
robocopy를 검색하면 다음 명령어를 자주 볼 수 있습니다.
robocopy "C:\Data" "D:\Backup\Data" /MIR
/MIR는 Mirror, 즉 원본과 대상 폴더 구조를 동기화하는 데 사용됩니다.
문제는 단순 복사와 동작 방식이 다르다는 점입니다.
원본에 없는 파일이나 폴더가 대상에 존재할 경우 대상에서 삭제될 수 있습니다.
즉, /MIR는 백업처럼 보이지만 실제로는 대상 폴더를 원본과 동일하게 맞추는 동기화에 가까운 동작을 할 수 있습니다.
따라서 /MIR를 처음 사용하는 경우 테스트 폴더에서 동작을 먼저 확인하는 것이 좋습니다.
중요한 데이터가 있는 대상 폴더에 인터넷에서 복사한 /MIR 명령어를 바로 실행하는 것은 권장하지 않습니다.
robocopy가 대량 파일 복사에 유리한 이유
대량 복사에서는 일부 파일 복사가 실패할 수 있습니다.
예를 들어 네트워크 드라이브나 외장 저장장치로 많은 파일을 옮기다 보면 일시적인 오류가 발생할 수 있습니다.
robocopy는 이런 상황에서 재시도와 관련된 옵션을 제공하기 때문에 단순 copy보다 더 강력하게 사용할 수 있습니다.
또한 파일의 상태를 비교해 이미 동일한 파일을 불필요하게 다시 복사하지 않는 방식으로 동작할 수 있습니다.
그래서 수천 개 이상의 파일을 복사하거나 정기적인 백업 작업에서는 robocopy를 선호하는 경우가 많습니다.
robocopy의 재시도 옵션
robocopy에는 복사 실패 시 재시도 횟수와 대기 시간을 설정하는 옵션이 있습니다.
예를 들어:
/R:3
은 실패 시 재시도 횟수를 지정하는 데 사용할 수 있습니다.
/W:5
는 재시도 사이의 대기 시간을 지정하는 데 사용할 수 있습니다.
예:
robocopy "C:\Data" "D:\Backup\Data" /E /R:3 /W:5
이렇게 하면 무한정 기다리는 대신 비교적 제한된 범위에서 재시도하도록 설정할 수 있습니다.
실제 백업 자동화에서는 이런 옵션이 유용할 수 있습니다.
robocopy 로그를 파일로 저장하기
복사 결과를 기록하고 싶다면 로그 옵션을 사용할 수 있습니다.
예를 들어:
robocopy "C:\Data" "D:\Backup\Data" /E /LOG:"C:\Temp\copylog.txt"
처럼 사용할 수 있습니다.
복사한 파일, 건너뛴 파일, 오류 등을 나중에 확인할 수 있어 대량 작업에서 유용합니다.
특히 백업 작업에서는 단순히 “복사가 끝났다”보다 무엇이 복사됐고 어떤 오류가 있었는지 확인하는 것이 중요합니다.
copy와 xcopy의 가장 큰 차이
두 명령어를 간단하게 비교하면 다음과 같습니다.
copy
→ 파일 중심의 단순 복사
xcopy
→ 파일과 폴더 구조까지 확장된 복사
예를 들어 파일 하나만 복사한다면:
copy test.txt D:\Backup\
정도로 충분합니다.
반면 C:\Data 폴더 전체를 하위 폴더까지 복사하려면:
xcopy "C:\Data" "D:\Backup\Data" /E /I
같은 방식이 더 적합합니다.
즉, 파일 하나인지 폴더 구조 전체인지가 첫 번째 선택 기준이 될 수 있습니다.
xcopy와 robocopy의 차이
xcopy와 robocopy는 둘 다 폴더 복사를 할 수 있습니다.
하지만 기능의 깊이가 다릅니다.
xcopy
→ 비교적 간단한 폴더 복사
robocopy
→ 대량 복사, 재시도, 로그, 동기화 등 고급 작업
예를 들어 개인 폴더 하나를 다른 위치로 한 번 복사하는 정도라면 xcopy로 충분할 수 있습니다.
반면 회사 자료나 수천 개의 파일을 정기적으로 백업하는 작업이라면 robocopy가 더 적합할 수 있습니다.
copy·xcopy·robocopy 한눈에 비교하기
세 명령어를 아주 간단하게 정리하면 다음과 같습니다.
copy
추천 상황:
파일 하나 또는 적은 수의 파일 복사
특징:
간단하고 빠름
단점:
폴더 전체 복사 기능이 제한적
xcopy
추천 상황:
폴더와 하위 폴더 복사
특징:
copy보다 다양한 옵션 제공
단점:
대규모 복사·동기화에서는 robocopy보다 기능이 제한적
robocopy
추천 상황:
대량 파일 복사, 백업, 폴더 동기화
특징:
재시도, 로그, 미러링 등 강력한 옵션
단점:
옵션을 잘못 사용하면 대상 파일에 예상하지 못한 변경이 발생할 수 있음
실제 상황 1: 파일 하나만 USB로 복사하고 싶다
예를 들어:
report.pdf
파일 하나를 E 드라이브의 USB로 복사한다고 가정하겠습니다.
이 정도 작업이라면 copy가 가장 간단합니다.
copy "C:\Users\User\Documents\report.pdf" "E:\"
xcopy나 robocopy를 사용할 수도 있지만 작업에 비해 명령어가 복잡해질 수 있습니다.
이 경우에는 단순한 작업에는 단순한 명령어를 선택하는 것이 좋습니다.
실제 상황 2: Documents 폴더 전체를 외장하드로 복사하고 싶다
폴더 전체와 하위 폴더까지 복사해야 한다면 xcopy를 사용할 수 있습니다.
예:
xcopy "%USERPROFILE%\Documents" "E:\Backup\Documents" /E /I
빈 폴더를 포함한 전체 폴더 구조를 복사하는 데 사용할 수 있습니다.
한 번 정도의 단순 폴더 복사라면 xcopy가 이해하기 쉬울 수 있습니다.
실제 상황 3: 수천 개의 파일을 정기적으로 백업하고 싶다
파일이 매우 많고 같은 작업을 반복해야 한다면 robocopy가 더 적합합니다.
예:
robocopy "D:\Work" "E:\Backup\Work" /E /R:3 /W:5
이런 방식으로 하위 폴더까지 복사하면서 오류 발생 시 재시도 횟수도 제한할 수 있습니다.
로그까지 필요하다면:
robocopy "D:\Work" "E:\Backup\Work" /E /R:3 /W:5 /LOG:"E:\Backup\backup.log"
처럼 사용할 수 있습니다.
실제 상황 4: 원본과 백업 폴더를 똑같이 만들고 싶다
이 경우 /MIR 옵션이 떠오를 수 있습니다.
하지만 매우 조심해야 합니다.
robocopy "D:\Work" "E:\Backup\Work" /MIR
를 사용하면 대상 폴더가 원본과 동일하게 맞춰지는 과정에서 원본에 없는 대상 파일이 삭제될 수 있습니다.
따라서 “백업”이라는 단어만 보고 /MIR를 사용하는 것은 위험합니다.
대상 폴더에 원본에는 없지만 보존해야 하는 파일이 있다면 해당 파일이 삭제될 수 있기 때문입니다.
처음 사용하는 경우 반드시 테스트 폴더에서 동작을 확인하는 것이 좋습니다.
복사 전에 대상 폴더를 확인하는 습관
복사 작업도 삭제 작업과 마찬가지로 경로 확인이 중요합니다.
특히 /Y, /MIR 같은 옵션을 사용할 때는 기존 파일을 덮어쓰거나 삭제할 수 있습니다.
따라서 명령어를 실행하기 전에:
dir "원본경로"
dir "대상경로"
로 폴더 내용을 확인하는 것이 좋습니다.
원본과 대상 경로를 반대로 입력하지 않았는지도 확인해야 합니다.
대량 파일 작업에서는 작은 경로 실수가 큰 문제로 이어질 수 있습니다.
경로에 공백이 있으면 따옴표 사용하기
예를 들어 폴더 이름이:
My Documents
라면 경로 전체를 따옴표로 감쌉니다.
robocopy "C:\My Documents" "D:\Backup\My Documents" /E
xcopy도 마찬가지입니다.
xcopy "C:\My Documents" "D:\Backup\My Documents" /E /I
CMD에서 경로 오류가 발생하면 가장 먼저 따옴표와 경로 철자를 확인해보는 것이 좋습니다.
복사 명령어를 사용할 때 가장 흔한 실수
첫 번째는 작업 크기와 상관없이 무조건 robocopy부터 사용하는 것입니다.
파일 하나라면 copy가 더 간단할 수 있습니다.
두 번째는 xcopy로 폴더를 복사하면서 필요한 옵션을 빼는 것입니다.
하위 폴더까지 복사해야 한다면 /E 같은 옵션이 필요할 수 있습니다.
세 번째는 robocopy /MIR를 단순 백업 옵션이라고 생각하는 것입니다.
대상 폴더에서 파일이 삭제될 수 있으므로 특히 조심해야 합니다.
네 번째는 원본과 대상 경로를 반대로 입력하는 것입니다.
대량 작업 전에는 반드시 경로를 확인합니다.
다섯 번째는 공백이 있는 경로에 따옴표를 사용하지 않는 것입니다.
여섯 번째는 복사 성공 메시지만 보고 전체 파일이 모두 정상적으로 복사됐다고 단정하는 것입니다.
중요한 작업이라면 파일 수, 폴더 구조, 로그 등을 확인하는 것이 좋습니다.
어떤 명령어를 선택해야 할까?
아주 간단하게 판단하면 됩니다.
파일 하나 복사
→ copy
폴더 전체와 하위 폴더 복사
→ xcopy
대량 파일, 반복 백업, 로그, 재시도 필요
→ robocopy
이 기준은 절대적인 규칙은 아니지만 처음 명령어를 선택할 때 이해하기 쉽습니다.
copy·xcopy·robocopy 핵심 명령어 정리
파일 하나 복사:
copy "C:\Data\test.txt" "D:\Backup\"
폴더 전체 복사:
xcopy "C:\Data" "D:\Backup\Data" /E /I
덮어쓰기 질문 없이 xcopy 실행:
xcopy "C:\Data" "D:\Backup\Data" /E /I /Y
robocopy로 하위 폴더까지 복사:
robocopy "C:\Data" "D:\Backup\Data" /E
재시도 제한:
robocopy "C:\Data" "D:\Backup\Data" /E /R:3 /W:5
로그 저장:
robocopy "C:\Data" "D:\Backup\Data" /E /LOG:"C:\Temp\copylog.txt"
미러링:
robocopy "C:\Data" "D:\Backup\Data" /MIR
단, /MIR는 대상에서 파일이 삭제될 수 있으므로 반드시 테스트 후 사용합니다.
CMD 파일 복사 작업의 안전한 순서
실제 복사 작업에서는 다음 순서대로 진행하면 좋습니다.
1. 원본 확인
dir "원본경로"
2. 대상 확인
dir "대상경로"
3. 작업 규모 판단
파일 하나인지 폴더 전체인지 확인합니다.
4. 명령어 선택
파일 하나 → copy
폴더 전체 → xcopy
대량/백업 → robocopy
5. 위험 옵션 확인
/Y, /MIR 등이 기존 파일에 영향을 줄 수 있는지 확인합니다.
6. 테스트 실행
중요한 데이터라면 작은 테스트 폴더에서 먼저 실행합니다.
7. 복사 후 결과 확인
대상 폴더의 파일과 폴더 구조를 확인합니다.
8. 필요하면 로그 확인
robocopy 로그를 이용해 오류 여부를 확인합니다.
마무리
Windows CMD에서 파일을 복사하는 대표적인 명령어는 copy, xcopy, robocopy 세 가지입니다.
모두 복사 명령어지만 역할에는 분명한 차이가 있습니다.
파일 하나 또는 몇 개를 간단하게 복사한다면:
copy
가 가장 직관적입니다.
폴더와 하위 디렉터리까지 복사해야 한다면:
xcopy
를 사용할 수 있습니다.
수천 개 이상의 파일을 복사하거나 정기적인 백업, 재시도, 로그 기록 등 더 복잡한 작업이 필요하다면:
robocopy
가 더 적합할 수 있습니다.
핵심은 가장 강력한 명령어를 선택하는 것이 아니라 현재 작업에 가장 적합한 명령어를 선택하는 것입니다.
특히 robocopy의 /MIR처럼 대상 폴더의 파일을 삭제할 수 있는 옵션은 반드시 의미를 이해하고 사용해야 합니다.
따라서 대량 복사 작업에서는:
원본 확인 → 대상 확인 → 명령어 선택 → 옵션 확인 → 테스트 → 실제 복사 → 결과 검증
순서로 진행하는 것이 좋습니다.
이 차이를 이해해두면 CMD에서 단순 파일 복사부터 폴더 백업, 대량 데이터 이동까지 상황에 맞는 명령어를 훨씬 효율적으로 사용할 수 있습니다.