cp 명령어
cp 명령어는 Copy의 줄임말로 파일이나 디렉터리를 복사할 때 사용하는 기본 명령어 입니다. 

사용법
1
cp [옵션] <복사할 파일 및 디렉터리> <복사본이 될 파일명 또는 경로>
cs

 

cp aaa.txt bbb.txt
aaa.txt 파일을 현재 디렉터리의 bbb.txt 파일로 이름 바꾸어 복사
cp aaa.txt bbb
aaa.txt 파일을 bbb 디렉터리에 복사. 파일명은 그대로 복사됨
cp -r /home /data/ccc
/home 디렉터리와 하위 파일들을 통째로 /data/ccc 로 복사
만약 ccc 라는 디렉터리가 이미 존재하면 ccc 하위에 복사됨. /data/ccc/home


옵션
-r 또는 -R
복사되는 디렉터리와 그 하위경로의 모든 파일 및 디렉터리까지 복사.
-a
복사되는 파일의 구성 및 속성을 같이 복사. -dpR 옵션을 사용한것과 같음.
-b
지우기 전에 백업 파일을 만듦. 파일명에 ~가 붙은 백업 파일이 생성됨.
-d
링크를 보존하여 복사
-p
파일의 소유자, 그룹, 권한, 시간 정보들을 유지하여 복사
-f
복사될 파일명을 지정할 때 이미 그 파일명을 갖는 파일이 존재하는 경우 덮어씀.
-i
복사될 파일명을 지정할 때 이미 그 파일명을 갖는 파일이 존재하는 경우 덮어쓸 것인지 물어봄.
-I
파일을 복사하지 않고 하드 링크를 생성.
-s
파일을 복사하지 않고 심볼릭 링크를 생성.
-S
-S copyFile 이라고 지정하면 백업 파일명에 'copyFile' 가 붙음.
-v
현재 진행되는 작업 표시

-u
복사 경로에 파일 및 디렉터리가 없거나, 이미 복사본이 존재하는 경우에는 원본이 복사본보다 최신인 경우에만 복사
백업시에 사용하기 좋으며, 불필요한 복사는 수정하지 않기 때문에 많은 파일 및 디렉터리 또는 대용량 복사시에 유용합니다.

 

 

 


-u 옵션에 대한 추가 설명
-u 옵션이 이해가 안될 수 있는데 다음의 재현과정을 보면 이해가 더 쉬울 것입니다.
먼저 아무런 내용이 없는 aaa.txt 파일이 있습니다.



cp -u aaa.txt bbb.txt 명령어를 통해 복사합니다. bbb.txt는 존재하지 않기때문에 -u 옵션을 주지 않은것과 마찬가지로 복사됩니다. 이때 시간을 보면 당연히 원본 aaa.txt보다 bbb.txt가 최신 파일입니다.



vi 에디터로 bbb.txt의 내용을 수정하였습니다.



bbb.txt를 수정한 후에 다시 cp -u aaa.txt bbb.txt를 실행합니다.
cp -u 옵션으로 다시 복사했는데 bbb.txt가 vi 에디터로 수정을 하였기 때문에 더 최신 파일이었고 복사는 이루어지지 않았습니다. aaa.txt의 내용이 복사되어 bbb.txt에 덮어쓰기 되지 않은 것입니다. 당연히 bbb.txt의 내용도 위와 같이 그대로입니다.



그럼 이번엔 vi 에디터로 aaa.txt를 수정한 후에 다시 복사해 보도록 하겠습니다.



aaa.txt 수정 후 다시 cp -u 로 복사합니다.



aaa.txt는 bbb.txt 를 덮어쓰면서 복사되었습니다.
이를 응용하여 cp -aub 옵션을 이용하면 백업에 유용하게 쓰일것입니다.

블로그 이미지

도로락

IT, 프로그래밍, 컴퓨터 활용 정보 등을 위한 블로그

댓글을 달아 주세요! 질문 환영합니다!