Robocopy

윈도우에서 다수의 파일이나 폴더 복사에 주로 사용하는 명령어가 xcopy 라는 툴이 있다. 워낙 오래된 툴이다보니 친숙하지만 단점도 많다. xcopy가 처음 나올 때에 고려하지 않아도 되었던 것들이 현재의 변화된 환경에서 단점이 되고 있다. Microsoft 에서는 xcopy를 대체하는 툴로 robocopy를 제공하고 있다

주요 옵션

  • E :: 비어 있는 디렉터리를 포함하여 하위 디렉터리를 복사한다.
  • /MIR :: 디렉터리 트리를 미러링한다.
  • /LOG:file :: 상태를 로그 파일에 출력한다. 기존 로그를 덮어씁니다.
  • /LOG+:file :: 상태를 로그 파일에 출력한다. 기존 로그에 추가한다.
  • /NFL :: 파일 목록 없음 - 파일 이름을 기록하지 않다.
  • /NDL :: 디렉터리 목록 없음 - 디렉터리 이름을 기록하지 않다.
-------------------------------------------------------------------------------
   ROBOCOPY     ::     Windows용 견고한 파일 복사                              
-------------------------------------------------------------------------------

  시작됨: 2013년 10월 5일 토요일 오후 10:54:05
             사용법 :: ROBOCOPY 원본 대상 [파일 [파일]...] [옵션]

               원본 :: 원본 디렉터리(드라이브:\경로 또는 \\서버\공유\경로)
               대상 :: 대상 디렉터리(드라이브:\경로 또는 \\서버\공유\경로)
               파일 :: 복사할 파일이다. 이름/와일드카드: 기본값은 "*.*"이다.

::
:: 복사 옵션:
::
                 /S :: 비어 있는 디렉터리는 제외하고 하위 디렉터리를 복사한다.
                 /E :: 비어 있는 디렉터리를 포함하여 하위 디렉터리를 복사한다.
             /LEV:n :: 원본 디렉터리 트리의 최상위 n개 수준만 복사한다.

                 /Z :: 다시 시작 모드에서 파일을 복사한다.
                 /B :: 백업 모드에서 파일을 복사한다.
                /ZB :: 다시 시작 모드를 사용한다. 액세스가 거부된 경우 백업
                       모드를 사용한다.
                 /J :: 버퍼를 사용하지 않은 I/O로 복사한다(큰 파일에 권장).
            /EFSRAW :: EFS RAW 모드에서 암호화된 모든 파일을 복사한다.

  /COPY:copyflag[s] :: 파일에 대해 복사할 내용이다. 기본값은 /COPY:DAT이다.
                       (copyflags : D=데이터, A=특성, T=타임스탬프).
                       (S=보안=NTFS ACL, O=소유자 정보, U=감사 정보).

 
               /SEC :: 보안된 파일을 복사한다. /COPY:DATS와 동일한다.
           /COPYALL :: 모든 파일 정보를 복사한다. /COPY:DATSOU와 동일한다.
            /NOCOPY :: 파일 정보를 복사하지 않다. /PURGE와 사용하면 좋다.
            /SECFIX :: 건너뛴 파일도 포함하여 모든 파일의 파일 보안을 수정한다.
            /TIMFIX :: 건너뛴 파일도 포함하여 모든 파일의 파일 시간을 수정한다.

             /PURGE :: 원본에 없는 대상 파일/디렉터리를 삭제한다.
               /MIR :: 디렉터리 트리를 미러링한다./ E plus /PURGE와 
                       동일한다.

               /MOV :: 파일을 이동한다. 복사한 다음 원본에서 삭제한다.
              /MOVE :: 파일 및 디렉터리를 이동한다. 복사한 다음 원본에서
                       삭제한다.

     /A+:[RASHCNET] :: 제공된 특성을 복사된 파일에 추가한다.
     /A-:[RASHCNET] :: 제공된 특성을 복사된 파일에서 제거한다.

            /CREATE :: 디렉터리 트리와 길이가 0인 파일만 만듭니다.
               /FAT :: 8.3 FAT 파일 이름만 사용하여 대상 파일을 만듭니다.
               /256 :: 256자를 초과하는 매우 긴 경로에 대한 지원을 사용하지
                       않다.

             /MON:n :: 원본을 모니터링한다. n개 이상의 변경 내용이
                       표시된 경우 다시 실행한다.
             /MOT:m :: 원본을 모니터링한다. 변경 내용이 있으면 m분 후에
                       다시 실행한다.

      /RH:hhmm-hhmm :: 실행 시간 - 새 복사본을 시작할 수 있는 시간이다.
                /PF :: 통과 기준이 아닌 파일당 기준으로 실행 시간을 확인한다.

             /IPG:n :: 패킷 간 간격(ms), 저속 회선에서 사용 가능한 대역폭을
                       확보한다.

                /SL :: 대상에 대한 심볼 링크를 복사한다.

            /MT[:n] :: n개의 스레드가 있는 다중 스레드를 복사한다(기본값 8).
                       n은 1 이상 128 이하여야 한다.
                       이 옵션은 /IPG 및 /EFSRAW 옵션과 호환되지 않다.
                       성능을 향상시키려면 /LOG 옵션을 사용하여 출력을 리디렉션하라.

 /DCOPY:copyflag[s] :: 디렉터리에 대해 복사할 내용(기본값은 /DCOPY:DA).
                       (copyflags : D=데이터, A=특성, T=타임스탬프).

           /NODCOPY :: 디렉터리 정보 복사 안 함(기본적으로 /DCOPY:DA 수행).

         /NOOFFLOAD :: Windows 복사본 오프로드 메커니즘을 사용하지
                       않고 파일을 복사한다.

::
:: 파일 선택 옵션:
::
                 /A :: 보관 특성 집합이 있는 파일만 복사한다.
                 /M :: 보관 특성이 있는 파일만 복사하고 보관 특성을 해제한다.
    /IA:[RASHCNETO] :: 지정된 특성을 가진 파일만 포함한다.
    /XA:[RASHCNETO] :: 지정된 특성을 가진 파일을 제외한다.

 /XF file [file]... :: 지정된 이름/경로/와일드카드와 일치하는 파일을 제외한다.
 /XD dirs [dirs]... :: 지정된 이름/경로와 일치하는 디렉터리를 제외한다.

                /XC :: 변경된 파일을 제외한다.
                /XN :: 새 파일을 제외한다.
                /XO :: 오래된 파일을 제외한다.
                /XX :: 추가 파일 및 디렉터리를 제외한다.
                /XL :: 고립된 파일 및 디렉터리를 제외한다.
                /IS :: 같은 파일을 포함한다.
                /IT :: 조정된 파일을 포함한다.

             /MAX:n :: 최대 파일 크기 - n바이트를 초과하는 파일을 제외한다.
             /MIN:n :: 최소 파일 크기 - n바이트 미만의 파일을 제외한다.

          /MAXAGE:n :: 최대 파일 사용 기간 - n일/날짜보다 오래된 파일을
                       제외한다.
          /MINAGE:n :: 최소 파일 사용 기간 - n일/날짜보다 최신 파일을
                       제외한다.
          /MAXLAD:n :: 최대 마지막 액세스 날짜 - n 이후에 사용되지 않은
                       파일을 제외한다.
          /MINLAD:n :: 최소 마지막 액세스 날짜 - n 이후에 사용된 파일을
                       제외한다.
                       n이 1900보다 크면 n은 n일과 같고 그렇지 않으면
                       n은 YYYYMMDD 날짜이다.

                /XJ :: 연결 지점을 제외한다. 일반적으로 기본값으로 포함된다.

               /FFT :: FAT 파일 시간(2초 단위)을 가정한다.
               /DST :: 1시간의 DST 시간 차이를 보완한다.

               /XJD :: 디렉터리의 연결 지점을 제외한다.
               /XJF :: 파일의 연결 지점을 제외한다.

::
:: 다시 시도 옵션:
::
               /R:n :: 실패한 복사본에 대한 다시 시도 횟수이다. 기본값은
                       1백만이다.
               /W:n :: 다시 시도 간 대기 시간이다. 기본값은 30초이다.

               /REG :: /R:n 및 /W:n을 레지스트리에 기본 설정으로 저장한다.

               /TBD :: 정의할 공유 이름을 기다립니다(다시 시도 오류 67).

::
:: 로깅 옵션:
::
                 /L :: 목록 전용 - 파일을 복사 또는 삭제하거나 타임스탬프를
                       만들지 않다.
                 /X :: 선택된 파일을 제외하고 모든 추가 파일을 보고한다.
                 /V :: 자세한 정보 표시를 출력하고 건너뛴 파일을 표시한다.
                /TS :: 출력에 원본 파일 타임스탬프를 포함한다.
                /FP :: 출력에 파일의 전체 경로 이름을 포함한다.
             /BYTES :: 바이트 크기로 인쇄한다.

                /NS :: 크기 없음 - 파일 크기를 기록하지 않다.
                /NC :: 클래스 없음 - 파일 클래스를 기록하지 않다.
               /NFL :: 파일 목록 없음 - 파일 이름을 기록하지 않다.
               /NDL :: 디렉터리 목록 없음 - 디렉터리 이름을 기록하지 않다.

                /NP :: 진행률 없음 - 복사율(%)을 표시하지 않다.
               /ETA :: 복사하는 파일의 예상 도착 시간을 표시한다.
          /LOG:file :: 상태를 로그 파일에 출력한다. 기존 로그를 덮어씁니다.
         /LOG+:file :: 상태를 로그 파일에 출력한다. 기존 로그에 추가한다.

       /UNILOG:file :: 상태를 유니코드로 로그 파일에 출력한다. 기존
                       로그를 덮어씁니다.
      /UNILOG+:file :: 상태를 유니코드로 로그 파일에 출력한다. 기존 로그에
                       추가한다.

               /TEE :: 로그 파일과 콘솔 창에 출력한다.

               /NJH :: 작업 헤더가 없다.
               /NJS :: 작업 요약이 없다.

           /UNICODE :: 상태를 유니코드로 출력한다.

::
:: 작업 옵션:
::
       /JOB:jobname :: 명명된 작업 파일에서 매개 변수를 가져온다.
      /SAVE:jobname :: 명명된 작업 파일에 매개 변수를 저장한다.
              /QUIT :: 매개 변수를 볼 수 있도록 명령줄을 처리한 후에 끝냅니다. 
              /NOSD :: 원본 디렉터리가 지정되어 있지 않다.
              /NODD :: 대상 디렉터리가 지정되어 있지 않다.
                /IF :: 다음 파일을 포함한다.
robocopy C:\Users D:\Users /E /COPYALL /XJ 
rd /q/s C:\users 
mklink /D C:\users D:\users  
누구나 수정하실 수 있다. 위키 사용법 참고하라.