본문 바로가기

IT/Software

나누어진 폴더에서 특정 확장자면 전체 복사하는 방법.


 사진을 백업하다보니 사실 사진파일은 얼마 안되는데 동영상 파일이나 RAW파일 등등 이런 파일들이 용량을 대부분 잡아먹는 경우가 많습니다. 그러다보니  사진폴더 백업하려면 꽤나 많은 공간이 차지하지요. 여기서 여러 폴더를 나누어 놓은 상태에서, 폴더는 그대로 유지하고 특정 확장자만 복사하는 방법을 알아보겠습니다.


 저는 이렇게 Photo  폴더안에 연도별로 폴더를 만들고, 그 안에 날짜별로 사진을 저장해둡니다. 그 안에는 JPG 리사이즈 폴더도 있고, 후보정 폴더도 있고 해서 보통 4~5단계의 폴더가 있지요. 이곳에서 일일히 JPG파일만을 골라다가 백업하기에는 너무 일이 벅찹니다. 검색을 해서 하자니 폴더가 유지되지 않구요. 간단한 도스 명령어를 이용해서 폴더는 그대로 유지한 채, 특정 확장자만 복사하는 방법을 알아보겠습니다.

 제가 사용한 명령어는 다음과 같습니다.

 xcopy /S E:\Photo\*.jpg D:\Photo\
 xcopy는 파일과 폴더의 전체를 복사하는 명령어입니다.
 /S 옵션은 폴더가 비어있으면 복사를 하지 않습니다. 빈 폴더는 걍 놔두는거죠.
 그 뒤에 복사를 할 폴더를 지정합니다.
 *.jpg는 확장자가 JPG인 모든 파일을 뜻합니다. *는 모든것, 을 의미하죠. 한가지 예로 *.*은 모든파일이름,모든 확장자 = 모든파일 입니다.
 그 뒤에 복사의 목표가 되는 폴더를 지정합니다.

 각자 폴더 구조에 맞게 사용하시면 됩니다. 도스창은 윈도우즈키+R 을 누르시거나 시작에서 실행을 선택하시고 cmd 를 누르시면 됩니다.

 아래는 xcopy 명령어의 모든 옵션입니다.
                                                                        

파일과 디렉터리 트리를 복사합니다.

XCOPY 원본 [대상] [/A | /M] [/D[:데이터]] [/P] [/S [/E]] [/V] [/W]
                           [/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U]
                           [/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z] [/B]
                           [/EXCLUDE:파일1[+파일2][+파일3]...]

  원본         복사할 파일을 지정합니다.
  대상         새 파일의 디렉터리와 또는 파일 이름을 지정합니다.
  /A           보관 특성을 가진 파일을 복사하며, 보관 특성을 수정하지
               않습니다.
  /M           보관 특성을 가진 원본 파일을 복사하며, 보관 특성을
               지웁니다.
  /D:m-d-y     지정된 날짜 이후에 바뀐 파일만 복사합니다.
               날짜가 지정되지 않으면, 대상 파일보다 새로운 원본 파일만
               복사합니다.
  /EXCLUDE:파일1[+파일2][+파일3]...
               문자열을 포함하는 파일 목록을 지정합니다.
               각 문자열은 파일의 다른 행에 있어야 합니다.
               일부 문자열이 복사할 파일의 절대 경로의 일부분과
               일치하면 복사할 파일에서 제외됩니다.
               예를 들면, \obj\ 또는 .obj에서는 obj 디렉터리 내의
               모든 파일을 제외하거나 .obj 확장자를 갖는 모든 파일을
               제외합니다.
  /P           각 대상 파일을 만들기 전에 물어봅니다.
  /S           비어 있지 않은 디렉터리와 하위 디렉터리를 복사합니다.
  /E           비어 있는 경우를 비롯한 디렉터리와 하위 디렉터리를 복사합니다.
               /S /E 스위치와 같으며, /T를 수정하는 데 사용될 수 있습니다.
  /V           새 파일의 크기를 확인합니다.
  /W           복사하기 전에 아무 키나 누릅니다.
  /C           오류가 생겨도 복사를 계속합니다.
  /I           대상을 찾을 수 없고 두 파일 이상을 복사하면, 대상을 디렉터리로
               지정합니다.
  /Q           복사하는 동안 파일 이름을 표시하지 않습니다.
  /F           복사하는 동안 원본과 대상 파일의 전체 경로를 표시합니다.
  /L           복사는 하지 않고, 복사할 파일을 표시만 합니다.
  /G           암호화 기능을 지원하지 않은 대상에 암호화된 파일을
               복사하도록 허용합니다.
  /H           숨겨진 파일과 시스템 파일도 복사합니다.
  /R           읽기 전용 파일을 겹쳐 씁니다.
  /T           파일은 복사하지 않고 디렉터리 구조만 복사합니다. 빈 디렉터리와
               하위 디렉터리는 포함되지 않습니다. /T /E 스위치를 함께 사용하면
               빈 디렉터리와 하위 디렉터리를 포함합니다.
  /U           대상에 이미 있는 파일을 업데이트합니다.
  /K           특성을 복사합니다. 일반적으로 Xcopy는 읽기 전용 특성을 지웁니다.
  /N           만들어진 짧은 파일 이름을 사용하여 복사합니다.
  /O           파일 소유권과 ACL 정보를 복사합니다.
  /X           파일 감사 설정을 복사합니다(/O 의미).
  /Y           이미 있는 대상 파일을 덮어쓸지를 확인하기 위해
               묻는 것을 금합니다.
  /-Y          이미 있는 대상 파일을 덮어쓸지를 확인하기 위해
               묻습니다.
  /Z           다시 시작할 수 있는 모드에서 네트워크 파일을 복사합니다.
  /B           기호화된 링크와 링크 대상을 복사합니다.
  /J           버퍼되지 않은 I/O를 사용하여 복사합니다. 매우 큰 파일에 권장합니
다.

/Y 스위치가 COPYCMD 환경 변수에 나타날 수 있습니다.
명령줄에 있는 /-Y와 함께 무시될 수 있습니다.