CP(1)

명칭
cp - 파일을 카피한다

서식
cp [ -R [-H | -L | -P]] [-f | -i | -n] [-pv] source_file target_file
cp [ -R [-H | -L | -P]] [-f | -i | -n] [-pv] source_file ... target_directory

해설
1 번째의 서식의 경우, cp 하 source_file 의 내용을 target_file 에 카피합니다. 2 번째의 서식의 경우, source_file 의 각각이 target_directory 의 안에 카피됩니다. 이 때 이름은 변경되지 않습니다. 카피처가 원래의 파일 자신이 되는 것 같은 지정을 cp 하지만 검출했을 경우, 카피는 실패합니다.

이하의 옵션을 사용할 수 있습니다.

-H  -R 옵션이 지정되어 있을 때, 명령행으로 지정된 기호 연결 (을)를 추적합니다. (나무 구조의 검색중에 발견된 기호 연결은 추적 하지 않습니다)

-L  -R 옵션이 지정되어 있을 때, 모든 기호 연결을 추적합니다.

-P  -R 옵션이 지정되어 있을 때, 기호 연결을 일절 추적하지 않습니다. 이것이 디폴트입니다.

-R  source_file (으)로서 디렉토리가 지정되었을 경우, cp (은)는 그 디렉토리와 그것 이하의 부분목을 구성하는 모든 파일을 카피합니다. 기호 연결에 대해서, 그것이 가리키고 있는 앞의 파일을 카피하는 것이 아니라 기호 연결인 채 카피합니다. 특수 파일에 대해서도 통상 파일로서가 아니고 cp 하지만 특수 파일을 생성하는 것으로 카피합니다. 작성되는 디렉토리의 속성은 프로세스의 umask 치의 영향을 받지 않고, 대응하는 카피원디렉토리와 같은 속성이 됩니다.

    하드 링크 된 파일에 대해서는, cp 하지만 다른 파일로서 카피하는 것에 주의해 주세요. 하드 링크를 유지하기 위해서(때문에)는, 대신에 tar(1), cpio(1), pax(1) (을)를 사용해 주세요.

-f  카피 먼저 벌써 동명의 파일이 존재하는 경우, 그 파일의 파 미션에 관련되지 않고, 확인을 요구하지 않고 그것을 소거해 새롭고 파일 (을)를 작성합니다. ( -f 옵션보다 전의 -i 또는 -n 옵션은 무시됩니다. )

-i  벌써 존재하는 파일에의 덧쓰기를 수반하는 카피를 실행하기 전에, 덧쓰기하는지 어떤지의 확인 prompt를 표준 에러 출력에 출력하는 듯 cp 에 지시합니다. 표준 입력으로부터의 대답이 캐릭터 ‘y’ 인가 ‘Y’ 그리고 시작되어 있으면 카피가 실행됩니다. ( -i 옵션보다 전의 -f 또는 -n 옵션은 무시됩니다. )

-n  기존의 파일을 덧쓰기하지 않습니다. ( -n 옵션보다 전의 -f 또는 -i 옵션은 무시됩니다. )

-p  파일의 변경 시각·액세스 시각·플래그·모드·유저 ID·그룹 ID 등을, 퍼미션이 허락하는 범위내에서 가능한 한 보존해 카피하는 듯 cp 에 지시합니다.

    유저 ID 나 그룹 ID 를 보존할 수 없는 경우에서도, 에러 메세지는 출력되지 않고 반환값도 변화하지 않습니다.

    카피원파일에 SETUID 비트가 서 있고 한편 그 유저 ID 를 보존할 수 없다 경우, SETUID 비트는 보존되지 않습니다. 카피원파일에 SETGID 비트가 서 있고 한편 그 그룹 ID를 보존할 수 없는 경우, SETGID 비트는 보존되지 않습니다. 카피원의 파일에 SETUID 비트와 SETGID 비트가 모두 서 있고 한편 그 유저 ID 나 그룹 ID 의 어느쪽이든 한편에서도 보존할 수 없는 경우, -p 옵션이 지정되어 있지 않은 한, SETUID 비트와 SETGID 비트의 양쪽 모두가 보존되지 않습니다.

-v  cp (을)를 장황하게 해, 카피할 때 파일을 표시시킵니다.

벌써 존재하는 카피처 파일에 대해서는, 퍼미션이 허락하면 내용은 덧쓰기됩니다만, 모드·유저 ID·그룹 ID 는 변화하지 않습니다.

2 번째의 서식에서는, source_file (으)로서 디렉토리가 하나만 지정되고 한편 -R 옵션이 지정되어 있는 경우를 제외해, target_directory (은)는 존재하고 있지 않으면 안됩니다.

카피처 파일이 존재하지 않는 경우, 카피원파일의 모드에 파일 모드 생성 마스크 (umask, csh(1) 을 참조) (을)를 적용한 것이 카피처 파일의 모드로서 사용됩니다. 카피원파일의 SETUID 비트가 서 있어도, 카피원파일과 카피처 파일의 소유자가 동일하지 않은 한, 그것은 떨어뜨려집니다. 카피원파일의 SETGID 비트가 서 있어도, 카피원파일과 카피처 파일이 동일 그룹에 속 밖에 개카피를 실시하는 유저가 그 그룹 에 들어가 있지 않은 한 그것은 떨어뜨려집니다. SETUID 비트와 SETGID 비트의 양쪽 모두가 서 있는 경우, 상기의 모든 조건이 채워지지 않은 한, 양쪽 모두의 비트가 떨어뜨려집니다.

파일의 생성 및 덧쓰기에는, 적절한 퍼미션이 없으면 안됩니다.

-R 플래그가 지정되면(자) 기호 연결은 추적됩니다만, 그렇지 않은 한 디폴트로 기호 연결은 항상 추적됩니다. -H 또는 -L 플래그 ( -R 플래그와 병용)을 이용하면(자), 기호 연결의 추적을 전술한 것처럼 동작함 다툴 수가 있습니다. -H, -L, -P 옵션은, -R 옵션이 지정되어 있지 않으면 무시됩니다. 또, 이러한 옵션은 서로 지워, 마지막에 지정된 것이 유효하게 됩니다.

진단

호환성
종래판의 cp 에는 -r 옵션이 있었습니다. 본실장에서도 이 옵션은 서포트되고 있습니다만, 특수 파일·기호 연결·FIFO 등을 올바르게 카피할 수 없기 때문에, 이것을 사용하는 것은 추천할 수 없습니다.

-v 및 -n (은)는 표준이 아니고, 스크립트중에서의 사용은 추천하지 않습니다.

관련 항목
mv(1), rcp(1), umask(2), fts(3), symlink(7)

표준
cp 명령은, p1003.2 호환을 상정하고 있습니다.

역사
cp 명령은 AT&T UNIX (으)로부터 등장했습니다.