cp 명령

용도

파일을 복사합니다.

구문

파일을 다른 파일에 복사하려면 다음 구문을 사용하십시오.

cp [ -d ] [ -e ] [ -E {force|ignore|warn} ] [ -f ] [ -h ] [ -i ] [ -p ] [ -I ] [ -S ] [ -U ] [ -- ] SourceFile TargetFile

파일을 디렉토리에 복사하려면 다음 구문을 사용하십시오.

cp [ -d ] [ -e ] [ -E {force|ignore|warn} ] [ -f ] [ -h ] [ -i ] [ -p ] [[ -r | -R ] [ -H | -L | -P ]] [ -I ] [ -U ] [ -- ] SourceFile ... TargetDirectory

디렉토리를 디렉토리에 복사하려면 다음 구문을 사용하십시오.

cp [ -d ] [ -e ] [ -E {force|ignore|warn} ] [ -f ] [ -h ] [ -i ] [ -p ] { -r | -R } [ -H | -L | -P ] [ -I ] [ -U ] [ -- ] SourceDirectory ... TargetDirectory

설명

cp 명령은 SourceFile 매개변수로 지정된 소스 파일을 TargetFile 매개변수로 지정된 대상 파일에 복사합니다. 목표 파일이 있을 경우 cp는 컨텐츠를 겹쳐쓰지만 파일과 연관된 모드, 소유자, 그룹은 변경되지 않습니다. SourceFile의 마지막 액세스 시간 및 TargetFile의 마지막 수정 시간은 복사가 완료된 시간으로 설정됩니다. TargetFile이 없으면 cp는 새 파일, TargetFile을 작성합니다. 이 파일은 소스 파일과 모드가 동일하지만, 수퍼 사용자가 지정하지 않은 경우 고착 비트가 설정되지 않는다는 점이 다릅니다. TargetFile의 소유자 및 그룹은 사용자와 같습니다. TargetFile이 다른 파일에 대한 링크인 경우 cp는 대상 링크를 소스 파일의 컨텐츠로 겹쳐씁니다. TargetFile의 링크는 그대로 남아 있습니다. 또한 cp 명령은 SourceFile 매개변수로 지정된 소스 파일(또는 SourceDirectory 매개변수로 지정된 디렉토리)을 TargetDirectory 매개변수로 지정된 디렉토리로 복사할 수 있습니다.

주: 소스 매개변수 중 하나가 디렉토리일 경우 -r 또는 -R 플래그 중 하나를 지정해야 합니다.

복사 프로세스 중 cp 명령으로 디렉토리가 작성된 경우 새로 작성된 디렉토리는 대응하는 소스 디렉토리와 모드가 동일합니다.

특수한 장치 파일을 복사할 수도 있습니다. 이 작업을 수행하기 위해서는 -R 플래그를 사용하는 것이 좋습니다. -R을 지정하면 특수 파일이 새로운 경로 이름 아래에서 다시 작성됩니다. -r 플래그를 지정하면 cp 명령이 특수 파일을 일반 파일로 복사하려고 합니다.

주: 이 명령으로 생성된 읽기 및 쓰기 시스템 호출에 대한 입출력 버퍼 크기는 AIX_STDBUFSZ 환경 변수를 사용하여 구성설정할 수 있습니다.

플래그

항목 설명
-d 소스 파일이 목표에서 복호화된 형식(일반 텍스트)으로 저장되도록 지정합니다.
-e 목표 파일 시스템이 암호화된 파일 시스템(EFS)인 경우 소스 파일이 암호화된 양식으로 저장되도록 지정합니다.
-E -E 옵션에는 다음 중 한 가지 인수가 필요합니다. -E 옵션을 생략하는 경우, 디폴트 작동은 warn입니다.
force
고정된 범위 크기 또는 파일의 공간 예약을 보존할 수 없을 경우, 파일에 대한 cp 조작에 실패합니다.
무시
자리 속성을 보존하는 과정의 모든 오류를 무시합니다.
경고
파일의 고정된 범위 크기 또는 공간 확보를 보존할 수 없는 경우 경고를 발행합니다.
-f 목표 파일이 쓰기 조작을 위해 열 수 없는 경우에 목표 파일의 제거를 지정합니다. 제거는 cp 명령에 의해 수행된 모두 복사에 선행합니다.
-h cp 명령이 기호 링크를 복사하도록 강제 실행합니다. 디폴트는 기호 링크를 따르는 것입니다. 즉, 기호 링크가 지시하는 위치에 파일을 복사합니다.
-h SourceFile 피연산자로 지정된 기호 링크에서 참조하는 파일의 유형 및 컨텐츠에 따라 조치를 수행합니다.
-i 겹쳐쓸 파일 이름을 입력하도록 프롬프트를 표시합니다. TargetDirectory 또는 TargetFile 매개변수가 SourceFile 또는 SourceDirectory 매개변수에 지정된 파일과 이름이 같은 파일을 포함하는 경우 이 작업이 수행됩니다. 다음을 입력하는 경우y또는 로케일의 동등한 y, cp 명령이 계속됩니다. 그 밖의 모든 대답은 cp 명령이 파일을 겹쳐쓰지 못하게 합니다.
-I ACL 변환 중 경고 메시지를 억제합니다.
-l SourceFile 피연산자로 지정된 기호 링크 또는 파일 계층을 이동하는 중 발견된 기호 링크가 참조하는 파일의 유형 및 컨텐츠에 따라 조치를 수행합니다.
-p 대응하는 TargetFile 및/또는 TargetDirectory에서 각 SourceFile/SourceDirectory의 다음 특성을 복제합니다.
  • 마지막 데이터 수정 시간 및 마지막 액세스 시간입니다. 이 복제가 어떤 이유로든 실패하는 경우, cp 명령은 표준 오류에 진단 메시지를 기록합니다. SourceFile/SourceDirectory나노초 필드는 마지막 수정 시간 또는 마지막 액세스 시간에 대해 복제되지 않습니다.
  • 사용자 ID 및 그룹 ID입니다. 이 복제가 어떤 이유로든 실패하는 경우, cp 명령은 표준 오류에 진단 메시지를 기록할 수 있습니다.
  • 파일 권한 비트와 S_ISUID 및 S_ISGID 비트입니다. 이 복제가 어떤 이유로든 실패하는 경우, cp 명령은 표준 오류에 진단 메시지를 기록합니다.

사용자 ID 또는 그룹 ID을 복제할 수 없는 경우 파일 권한 비트 S_ISUID 및 S_ISGID가 지워집니다.

소유자 ID 및 그룹 ID, 권한 모드, 수정 및 액세스 시간을 보전하려면 사용자에게 적절한 파일 액세스 권한이 있어야 합니다(사용자가 수퍼 사용자이거나 대상 파일과 동일한 소유자 ID를 보유해야 함).

이 특성이 보존될 수 없는 경우 목표 파일은 삭제되지 않습니다.

목표 파일 시스템에서 동일한 내용을 지원할 경우 SourceFile과 연관된 액세스 제어 리스트(ACL)를 보존합니다. 소스 파일에 NFS4 ACL이 포함되고 목표 파일 시스템에서 NFS4 ACL을 지원하지 않을 경우 NFS4 ACL이 AIXC로 변환됩니다.

ACL 변환에 성공하면, 경고 메시지가 stderr에 인쇄됩니다.

소스 파일이 암호화되고 -p 플래그가 지정된 경우 cp 명령은 EFS 정보를 보존합니다. 일반적으로 -e 또는 -d 플래그는 -p 플래그보다 우선합니다. 사용자가 -e 플래그를 사용하여 일반 텍스트 파일을 암호화된 형식으로 변환하도록 요청한 경우 사용자가 -p 플래그를 지정했어도 복사할 때 마지막 데이터 수정 시간, 마지막 액세스 시간 등의 속성은 보존되지 않습니다. 암호화 또는 복호화 상태가 동일하게 유지되는 한, -p 플래그는 파일 속성 및 EFS 정보를 보존합니다.

-p 파일 계층을 이동하는 중 발견된 기호 링크 또는 SourceFile 피연산자로 지정된 기호 링크에서 조치를 수행합니다.
-r SourceFile 또는 SourceDirectory 매개변수(순환 복사)로 지정된 파일 또는 디렉토리 아래에서 파일 계층을 복사합니다. -r 플래그는 일반 파일과 같은 방식으로 특수 파일을 처리합니다.
-R SourceFile 또는 SourceDirectory 매개변수로 지정된 디렉토리에서 TargetDirectory 매개변수로 지정된 디렉토리로 정규 파일 및 디렉토리 아래 파일 계층을 복사합니다. 선입선출법(FIFO) 파일과 블록 및 문자 장치 파일과 같은 특수 파일 유형은 복사되는 대신 재작성됩니다. -h 플래그가 지정되지 않으면 기호 링크는 뒤에 나옵니다. (-R 플래그는 -r 플래그보다 선호됩니다.)
-H, -L 또는 -P 옵션이 모두 지정되지 않은 경우 이 옵션 중 디폴트로 사용할 옵션은 지정되지 않습니다. 다음 사항을 고려하십시오.
  • -H 옵션을 지정하는 경우 cp 명령은 SourceFile 피연산자로 지정된 기호 링크가 참조하는 파일의 유형 및 컨텐츠에 따라 조치를 수행합니다.
  • -L 옵션을 지정하는 경우 cp 명령은 SourceFile 피연산자로 지정된 기호 링크 또는 파일 계층을 이동하는 중 발견된 기호 링크가 참조하는 파일의 유형 및 컨텐츠에 따라 조치를 수행합니다.
  • -P 옵션을 지정한 경우 cp 명령은 SourceFile 피연산자로 지정된 기호 링크와 파일 계층을 이동하는 중 나타나는 기호 링크를 복사하며, 기호 링크 뒤에 나오지 않습니다.
-S 소스 파일이 스파스 파일인 경우 이를 대상 파일로 복사하는 동안 소스 파일의 스파스 특성을 보존합니다.

스파스 파일은 파일에 할당된 블록이 대부분 비어 있을 때 가장 효율적으로 파일 시스템 공간을 사용하려고 시도하는 컴퓨터 파일 유형입니다.

-U 확장된 속성(EA), 액세스 제어 리스트(ACL)를 SourceFile에서 TargetFile로 복사합니다. 목표 파일 시스템에서 EA를 지원하지 않을 경우 무시됩니다. 목표 파일 시스템에서 소스 ACL 유형이 지원되지 않을 경우 목표 파일 시스템에서 지원하는 호환 가능한 ACL 유형으로 변환됩니다.
-- --(대시, 대시) 플래그 뒤에 오는 매개변수가 파일 이름으로 해석함을 나타냅니다. 이 널(null) 플래그는 -(빼기 부호)로 시작하는 파일 이름의 스펙을 허용합니다.
다음 표에서는 서로 다른 조건에서 목표 파일의 암호화 또는 복호화 상태를 표시합니다.
cp 명령에 대한 명시적 플래그 소스 파일 목표 파일 시스템 결과
-e (암호화됨) 비EFS 비EFS 오류
-e 비EFS EFS 암호화된 파일
-e EFS EFS 암호화된 파일
-e EFS 비EFS 오류
-d(복호화됨) 비EFS 비EFS 일반 텍스트 파일
-d 비EFS EFS 일반 텍스트 파일
-d EFS 비EFS 일반 텍스트 파일
-d EFS EFS 일반 텍스트 파일
비명시적 플래그 비EFS 비EFS 일반 텍스트 파일
비명시적 플래그 비EFS EFS 목표 디렉토리에서 EFS 상속이 사용 가능한 경우 목표 파일은 암호화된 파일입니다. 그렇지 않으면 목표 파일은 일반 텍스트 파일입니다.
비명시적 플래그 EFS EFS 암호화된 파일
비명시적 플래그 EFS 비EFS 오류
주: -f 플래그를 지정하지 않으면 암호화된 파일을 일반 텍스트 파일로 겹쳐쓰거나 그 반대로 겹쳐쓸 수 없습니다. 목표의 암호화 상태는 -e 또는 -d 플래그, -f 플래그와 함께 -e 또는 -d 플래그를 지정하지 않은 경우 암호화 상속, 암호화 상속이 활성 상태가 아닌 경우 소스 파일의 암호화 상태에 따라 달라집니다.

종료 상태

이 명령은 다음과 같은 종료값을 리턴합니다.

항목 설명
0 모든 파일이 성공적으로 복사되었습니다.
> 0 오류가 발생했습니다.

  1. 현재 디렉토리에서 파일의 사본을 작성하려면 다음을 입력하십시오.
    cp prog.c prog.bak
    이 사본prog.c-prog.bak.prog.bak파일이 아직 존재하지 않으면 cp 명령이 파일을 작성합니다. 존재하는 경우, cp 명령은 이를 다음의 사본으로 대체합니다.prog.c파일로 내보냅니다.
  2. 현재 디렉토리의 파일을 다른 디렉토리로 복사하려면 다음을 입력하십시오.
    cp jones /home/nick/clients
    이는jones파일/home/nick/clients/jones.
  3. 파일을 새 파일에 복사하고 소스 파일과 연관되는 수정 날짜, 시간 및 액세스 제어 리스트(ACL)를 보존하려면 다음과 같이 입력하십시오.
    cp -p smith smith.jr
    이는smith파일을smith.jr파일로 내보냅니다. 시스템은 현재 날짜 및 시간소인을 사용하여 파일을 작성하는 대신smith.jr동일한 날짜 및 시간을smith파일로 내보냅니다. 다음smith.jr파일도 상속합니다.smith파일의 액세스 제어 보호.
  4. 한 디렉토리의 모든 파일을 새 디렉토리로 복사하려면 다음을 입력하십시오.
    cp /home/janet/clients/* /home/nick/customers
    이는clients디렉토리를customers디렉토리.
  5. 모든 파일 및 서브디렉토리를 포함하여 디렉토리를 다른 디렉토리로 복사하려면 다음을 입력하십시오.
    cp /home/janet/clients/* /home/nick/customers
    주: 디렉토리를 자체에 복사할 수 없습니다.
    이는clients모든 파일, 서브디렉토리 및 해당 서브디렉토리의 파일을 포함하여 디렉토리를customers/clients디렉토리.
  6. 파일의 특정 세트를 다른 디렉토리로 복사하려면 다음을 입력하십시오.
    cp jones lewis smith /home/nick/clients
    이는jones,lewissmith현재 작업 디렉토리에 있는 파일을/home/nick/clients디렉토리.
  7. 패턴 대응 문자를 사용하여 파일을 복사하려면 다음을 입력하십시오.
    cp programs/*.c .
    이렇게 하면programs다음으로 끝나는 디렉토리.c단일 디렉토리로 표시되는 현재 디렉토리에.. 다음 사이에 공백을 입력해야 합니다.c마지막 점을 포함합니다.
  8. 파일을 새 파일에 복사하고 소스 파일과 연관되는 ACL 및 EA를 보존하려면 다음을 입력하십시오.
    cp -U smith smith.jr
  9. 복사하는 동안 소스 파일의 스파스 특성을 보존하려면 다음을 입력하십시오.
    cp -S file.c sparse_file.c

파일

/usr/bin/cp
cp 명령을 포함합니다.