cp(유닉스)

cp (Unix)
cp
Cp-example-command-gimp.gif
사용 예cp명령어
원저작자AT&T 벨 연구소
개발자다양한 오픈 소스 및 상용 개발자
초기 릴리즈1971년 11월 3일, 50년 전(1971-11-03)
기입처플랜 9: C
운영 체제Unix, Unix like, Plan 9, Inferno, KolibriOS
플랫폼크로스 플랫폼
유형명령어
면허증.코어 유틸리티: GPLv3
계획 9: MIT 라이선스

컴퓨팅에서 는 파일 디렉토리를 복사하기 위한 다양한 Unix 및 Unix 유사 운영 체제의 명령어입니다.이 명령어에는 파일을 다른 파일에 복사하거나 하나 이상의 파일을 디렉토리에 복사하거나 디렉토리 전체를 다른 [1]디렉토리에 복사하기 위해 프로그램에 제시된 인수 유형에 의해 표현되는 세 가지 주요 동작 모드가 있습니다.

유틸리티는 또한 수행된 작업을 자세히 설명하는 다양한 명령줄 옵션 플래그를 받아들입니다.두 가지 주요 사양은 POSIX cpGNU cp입니다.GNU cp에는 POSIX [2]버전보다 많은 추가 옵션이 있습니다.

이 명령어는 EFI [3]쉘에서도 사용할 수 있습니다.

역사

cp버전1 [4]Unix의 일부입니다.의 버전cp GNUcoreutils 번들은 Torbjorn Granlund, David MacKenzie 및 Jim Meyering에 [5]의해 작성되었습니다.

동작 모드

cp에는 세 가지 주요 작동 모드가 있습니다.이러한 모드는 호출 시 프로그램에 표시되는 인수 유형과 개수에서 추론됩니다.

  • 프로그램에 파일에 대한 경로 이름의 인수가 두 개 있는 경우 프로그램은 첫 번째 파일의 내용을 두 번째 파일에 복사하고 필요에 따라 두 번째 파일을 만듭니다.
  • 프로그램에 파일 경로 이름의 인수가 하나 이상 있고 이러한 인수가 디렉토리에 대한 경로 인수 뒤에 있는 경우, 프로그램은 각 소스 파일을 대상 디렉토리에 복사하여 존재하지 않는 파일을 만듭니다.
  • 프로그램의 인수가 2개의 디렉토리에의 패스명인 경우, cp는 소스 디렉토리의 모든 파일을 대상 디렉토리에 카피하고, 필요한 파일 또는 디렉토리를 작성합니다.이 동작 모드에서는 디렉토리의 재귀 복사를 나타내는 추가 옵션플래그(일반적으로 r)가 필요합니다.행선지 디렉토리가 이미 존재하는 경우는, 소스는 행선지에 카피되고, 행선지가 존재하지 않는 경우는 새로운 디렉토리가 작성됩니다.

사용.

파일을 다른 파일로 복사:

cp [-fHip][--] 소스 파일타깃 파일

디렉토리에 파일 복사

cp [-fHip][--] 소스 파일...타깃 디렉토리

디렉토리를 디렉토리(-r 또는 -R)에 복사해야 합니다.

cp - r - R [ - fHip ][ -- ]소스디렉토리...타깃 디렉토리

옵션 플래그

  • -f(force) – 쓰기 작업을 위해 대상 파일을 열 수 없는 경우 대상 파일을 삭제합니다.삭제는 에 의해 실행되는 복사보다 먼저 이루어집니다.cp명령어를 입력합니다.
  • -H(참조 해제)– 다음 명령어를cp명령은 대상에 대한 심볼 링크가 아닌 대상 파일이 있도록 심볼 링크(symbolic links)를 따릅니다.
  • -i(premptive) : 덮어쓸 파일의 이름을 입력하도록 요구됩니다. 문제는 TargetDirectory 또는 TargetFile 매개 변수에 SourceFile 또는 SourceDirectory 매개 변수에 지정된 파일과 이름이 같은 파일이 포함된 경우에 발생합니다.들어오면y(혹은 로케일은 에 상당합니다.y),cp명령어가 속행됩니다.다른 답변이 있으면cp명령어를 덮어쓰지 않도록 합니다.
  • -n(클러빙 없음)– 실수로 파일을 덮어쓰는 것을 방지합니다.
  • -p(표준) –-p flag 는, 대응하는 타겟내의 각 소스 패스의 특성을 보관 유지합니다.마지막 데이터 변경 시각마지막 액세스 시각, 소유권(이러한 권한을 가지는 경우에만), 및 파일 권한 비트입니다.
  • -R또는-r(복사) – 디렉토리를 재귀적으로 복사

현재 디렉터리에 파일 복사본 만들기:

cp prog.c prog.c prog.밧테루

이것은 prog.c를 prog.bak으로 복사합니다.prog.bak 파일이 아직 존재하지 않으면 cp 명령에 의해 생성됩니다.존재하는 경우 cp 명령어는 해당 내용을 prog.c 파일의 내용으로 바꿉니다.

현재 디렉토리의 두 파일을 다른 디렉토리에 복사합니다.

cp jones smith / home / nick / parames

그러면 파일 jones가 /home/nick/clients/jones에 복사되고 smith가 /home/nick/clients/smith에 복사됩니다.

파일을 새 파일에 복사하고 원본 파일과 관련된 수정 날짜, 시간 및 액세스 제어 목록을 유지합니다.

cp -p smith.jr

그러면 smith 파일이 smith.jr 파일에 복사됩니다.현재 날짜 및 시간 스탬프를 사용하여 파일을 작성하는 대신 smith.jr 파일에 smith 파일과 동일한 날짜 및 시간을 지정합니다.또한 smith.jr 파일은 smith 파일의 접근컨트롤 보호도 상속합니다.

모든 파일 및 하위 디렉토리를 포함한 디렉토리를 다른 디렉토리에 복사합니다.

cp - R / home / nick / 클라이언트 / home / nick / 고객

이것에 의해, 디렉토리 클라이언트(모든 파일, 서브 디렉토리, 및 이러한 서브 디렉토리내의 파일을 포함한다)가 디렉토리 고객/클라이언트에 카피됩니다.일부 Unix 시스템은 디렉토리 경로의 종료에 따라 이 모드에서 다르게 동작합니다.사용.cp -R /home/nick/clients/ /home/nick/customersGNU 시스템에서는 예상대로 동작하지만 BSD 시스템에서는 디렉토리 클라이언트 자체 대신 "클라이언트" 디렉토리의 모든 내용을 복사합니다.소스 디렉토리의 경로가 또는 로 끝나는 경우 GNU 시스템과 BSD 시스템 모두에서 동일한 현상이 발생합니다.(후행 슬래시 유무).

기존 파일에 대한 파일 복사는 기존 파일을 업데이트 모드로 열어서 파일 inode를 보존함으로써 수행됩니다.이것에 의해, 기입 액세스가 필요하게 되어, 타겟 파일은 원래의 권한을 유지할 수 있게 됩니다.

관련 Unix 명령어

  • cpio – 디렉토리 구조 전체를 한 장소에서 다른 곳으로 복사합니다.
  • tar – 파일 아카이브 작성
  • link : 파일 또는 디렉토리에 대한 링크를 작성하기 위한 시스템콜
  • ln: 파일 또는 디렉토리에 대한 링크를 만듭니다.
  • mv: 파일 또는 디렉토리를 이동합니다.
  • rm: 파일 또는 디렉토리를 삭제합니다.
  • unlink : 파일 또는 디렉토리를 삭제하기 위한 시스템콜
  • chmod: 파일 또는 디렉토리의 모드(일명 권한)를 변경합니다.
  • chown – 파일 또는 디렉토리의 소유권 변경
  • chgrp : 파일 또는 디렉토리의 그룹을 변경합니다.
  • uucp – UNIX에서 UNIX로 복사
  • scp – SSH를 통한 시큐어
  • 진행률,[6][7] cp, mv, dd의 진행률을 표시하는 Linux 도구.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "Cp(1) - Linux manual page".
  2. ^ "GNU Coreutils: cp invocation". www.gnu.org.
  3. ^ "EFI Shells and Scripting". Intel. Retrieved 2013-09-25.
  4. ^ McIlroy, M. D. (1987). A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 (PDF) (Technical report). CSTR. Bell Labs. 139.
  5. ^ "Cp(1): Copy files/Directories - Linux man page".
  6. ^ "Progress(1) - Linux man page".
  7. ^ "Progress - Coreutils Progress Viewer". GitHub. 14 November 2021.

외부 링크