본문 바로가기

OS/리눅스

[리눅스] 'cp', 복사 합시다!








Copy



 이번에 다룰 내용은 'copy' 복사 명령어 입니다.
 명령어만 본다면 그렇게 어렵지 않은 내용이니 한번 봐주세요 ^^.

 우선, 그래픽 모드의 복사방법은 윈도우의 그것과 비슷합니다. 
보시는 바와 같이 마우스 오른쪽을 누르시거나, 명령줄 [Edit] → [copy]를 누르시면 됩니다.



 텍스트 모드에서의 copy 명령어의 사용방법은 다음과 같습니다.
1. [~]$ copy [옵션] [원본] [사본]
2. [~]$ copy [옵션] [원본] [경로]

 그리고 사용할 수 있는 옵션은 다음과 같습니다.
-a : 원본 파일의 모든 정보(속성, 링크)를 그대로 유지합니다. 복사 대상이 디렉토리일 경우, 하위 폴더 및 파일까지 복사합니다.
-b : 복사 대상이 이미 존재하는 경우, 기존 파일을 백업하고 복사합니다.
-f : 복사 대상이 이미 존재하는 경우, 덮어씌워 버립니다.
-l : 하드링크 형식으로 복사합니다.
-p : 파일의 정보(소유자, 그룹, 권한, 시간)들까지도 그대로 복사합니다.
-r : 복사 대상이 디렉토리일 경우, 하위 폴더 및 파일까지 복사합니다.
-i : 복사 대상이 이미 존재하는 경우, 물어봅니다.
-v : 복사 상태를 보여줍니다.

 더 많은 옵션들이 있으나, 사실 옵션 자체를 잘 쓰질 않기 때문에 몇가지는 기록하지 않았습니다.
굳이 많이 쓴다면 '-a', '-f', '-p', '-r', '-i' 정도 겠네요. 조합으로는 '-rf' 정도겠습니다.

 복사를 한번 해볼까요? 우선 실습환경은 제 'iso'계정의 홈 디렉토리 입니다.
먼저 복사할 대상인 'test' 디렉토리를 살펴볼까요?

[실행화면]
 
 'test' 디렉토리에는 'test01' 과 'test02' 하위 디렉토리가 존재하네요.
자 그럼. 'test' 디렉토리를 동일 홈 디렉토리 안에 'ctest'라는 디렉토리 명으로 복사해 보도록 하겠습니다.

[실행화면]

 
 어라, 'cp: omitting directory 'test''라는 오류 메시지가 나오면서 복사 작업이 되질 않습니다. 이유는 '디렉토리'이기 때문이죠.
그래서 '-a' 나 '-r' 옵션을 함께 써주게 되면 가능합니다.

[실행화면]

 복사가 되었습니다. 복사과정을 보여주기 위해서 '-v' 옵션을 썻구요. 보시면 'test' 디렉토리에 존재하던, 하위 디렉토리까지 복사가 된 것을 확인 하실 수 있습니다. 제가 위치하는 디렉토리 안에서 이루어 졌기 때문에 저렇게 디렉토리명이나 파일명을 쓸 수 있었구요.

 경로를 안다면 다른 디렉토리에 위치한다하더라도 경로에 해당하는 디렉토리나 파일명을 명시해서 복사할 수도 있겠습니다.
이것을 염두해 두고 다음 실행화면을 참고합시다. 'test' 디렉토리의 하위 디렉토리인 'test01'를 빈 디렉토리 'test2'에 복사하는 과정입니다.

[실행화면]

 보시게 되면 같은 위에서 했던 같은 오류로 복사가 진행되지 않는데요, 역시나, 디렉토리를 복사하는 것이기 때문에 '-r' 옵션을 써서 복사를 합니다.
 
 
도움 되셨다면 밑의 추천(손가락 표시)과 댓글 부탁드립니다.