Tag Archives: 외부 명령어

copy, xcopy, robocopy

Introduction

컴퓨터의 가장 기본되는 장점 중, 하나는 “복제가 용이하다”는 점이다. 복사할 때마다 열화가 쉽게 일어나는 아날로그 복사기와는 달리, 열화 확인/보정이 바로 가능하게 된 컴퓨터의 디지털 복제는 데이터 문화의 패러다임을 바꾸었다.

이에 본 글에서는 사람들이 가장 대중적으로 사용했던 MS-DOS와 MS Windows의 복사 명령에 대해서 알아보고 이들이 어떻게 변화해 왔는지, 어떤 장점을 가지고 있는지 정리해보고자 한다.

copy

복사하는 기본적인 명령이다.
MS Tech Net 항목

명령 정보

유형

내부 명령어1

탑재

MS-DOS 1.0과 그 이후 버전

사용

+를 사용해, 여러 파일을 이어서 복사 할 수 있다.

목적

copy는 새로운 파일로 예전 파일을 복사해주거나, 존재하는 파일에 덮어 씌워준다.

백업하기엔 디렉토리 구조를 복사할 수 없으며2 다른 사람에게 파일을 전달해 주는 데에 주로 쓰였다. 옛날 디스크는 신뢰성이 낮았기에, 오래된 파일의 기록 부분이 자성이 약해져 다르게 읽히는 것을 방지하기 위해, 오래된 파일을 복사해 새로 쓰는 것이 미덕으로 여겨지기도 했다.3 다만 이것이 실제로 효용이 있었던 것인지 미신이었지는 알 수 없다. 그 시절에는 뭣하면 망가지는게 디스크여서..

장점

copy가 갖는 장점은 단순히 파일에서 파일의 복사만이 아니라 con으로 콘솔 입력을 prn으로 프린터를 연결할 수 있다는 점이다. 가장 기초적인 텍스트 편집기와 출력 명령이 포함되어 있다고 볼 수 있다. con과 prn을 동시에 사용하면 타자기가 된다.

감상

도스 시절에는 네트워크 연결이 없는 것이 보통이었으므로, 네트워크 공유 자원에 대해 어떻게 동작하는지는 사용해보지 못했다. 아쉬운 점이다. 현재는 당연히, 네트워크 경로의 파일이나 프린터에 연결할 수 있다.  copy의 원본과 대상은 얼마든지 시스템 device일 수 있고, 여기에 파일을 섞을 수 있다는 건 *NIX 스럽다. 그러나 0 byte인 파일은 복사하지 못한다.

xcopy

eXtended COPY. copy의 기능을 더 강화한 명령이다.

명령 정보

유형

외부명령어

탑재

MS-DOS 3.2와 그 이후 버전
MS Tech Net 항목

사용

xcopy도 /?로 옵션을 읽어보니 예전의 xcopy는 아니다. 기능이 훨씬 더 풍부해졌다.

목적

copy처럼 시스템 디바이스를 원본이나 대상으로 삼을 수는 없으나, 복사라는 목적에 맞는 기능이 강화되었다.

장점

copy와 달리 메모리 버퍼를 사용해 복사를 하기에 다수의 파일을 복사하는데 유리하다. 백업 목적의 단순 복사를 커맨드 하나로 해결할 수 있다는 것은 강한 매력이였다. Path 단위의 복사를 지원하기에 디렉토리도 복제되며, 숨겨진 파일이 있더라도 같이 복사할 수 있다. 이 시점에는 워드프로세서등의 편집기도 출중했기에 copy의 부가적인 기능은 필요하지 않았다.

감상

tlk-xcopy그거

열려있는 파일을 복사하지 못하지만 일반적인 복사에는 충분하다. 윈도우 탐색기로 복사하는 것 보다는 옵션을 줄 수 있다는 점에서 훌륭하나, 현재 xcopy는 실업자다.4 robocopy가 있으니까.

robocopy

extend를 초월한 robust한 copy.

명령정보

유형

멀티스레드 응용프로그램
MS Tech Net 항목

탑재

Windows NT 4.0에서의 Windows Resource Kit. 정식 도입은 Vista , Server 2008과 그 이후.

사용

로보카피의 옵션은 굉장히 긴 덕에 실행 사용법에서 “옵션”으로 표기한다. 필요한 건 거의 다 있다.

목적

단순히 파일을 복사하는 것은 탐색기에서 해결할 수 있다. 쉘로 접근하는 것은 더 전문적인 수단이 필요하기 때문이다. 이에 따라 로보카피는 파일 미러링의 관점에서 필요한, 풍부한(robust) 기능을 제공한다. 네트워크 드라이브를 마운트한 경우 가장 빛을 본다.

장점

  • 다시 시작 모드, 백업 모드의 지원
  • 디렉토리 타임 스탬프 복사 여부 선택
  • 파일 정보 복사 여부 선택 가능
  • 파일의 특성으로 복사 대상 선택이 가능하다.
  • 파일의 크기로 복사 대상 선택이 가능하다.
  • 파일의 나이 / 마지막 액세스를 기준으로 대상 선택이 가능하다.
  • 멀티 스레딩(기본이 8, 최대 128)
  • 원본에서 n번째 깊이까지만 디렉토리 복사
  • 파일 정보 복사 여부 선택 가능
  • 접근 실패시 재시도 횟수, 재시도 대기시간 설정 가능.
  • 원본 모니터링 가능 (변경 파일 수나 시간이 지나면 다시 실행)
  • 실행 시간 확인
  • 심볼 링크를 복사
  • 복사 수행 전 목록만 뽑을 수 있다.
  • 작업 파일로 매개 변수를 저장하고 불러올 수 있다.

여기에 자체 로깅도 지원한다. xcopy보다 영문 3자가 긴 것이 단점. CMD 알러지가 있는 분을 위해 GUI 킷을 만든 것이 존재하나 공식이 아니며 딱히 필요없다.

감상

조금만 손을 써 주면 윈도에서 행복한 미러링 / 백업을 할 수 있다. 상태가 좋지 않은 하드 디스크에서 복구툴을 사용하지 않고 파일을 복사하는 마지막 수단이기도 하다. 네트워크 드라이브에서 / 드라이브로의 복사가 너무나 편리하고 더 빠르므로 단체 작업에서 유용하다. 고정적인 syncing이 필요하다면 rsync를 쓰지만 잠시동안 이라면 제1대책은 robocopy이다.

 

내부 명령어와 외부 명령어

지금은 어지간해서는 쓰이지 않는 말이다.

옛날 옛적에는 명령어를 내부 명령어와 외부 명령어로 나눌 수 있었다. OS에 탑재되어 별도의 파일이 필요하지 않는 명령어를 내부 명령어1, 별도의 실행 파일로 존재하는 명령어를 외부 명령어2라 하였다.

어떤 명령이 내부 명령어이고, 어떤 명령이 외부 명령어인지 알고 싶다면 5.0 기준으로 MS의 명령어가 정리되어 있는 페이지를 참고하면 좋다.