cpio

cpio
cpio
원저작자딕 헤이트
개발자AT&T 벨 연구소
초기 릴리즈1977년; 45년 전 (연방)
운영 체제Unix 및 Unix 유사
유형명령어
면허증.GNU cpio: GPLv3
libarchive bsdcpio:새로운 BSD 라이선스
cpio
파일 이름 확장자
.cpio
인터넷 미디어 유형
응용 프로그램/x-cpio
Uniform Type Identifier(UTI; 균일 유형 식별자)public.cpio-archive
포맷의 종류파일 아카이브 서버

cpio일반적인 파일아키버 유틸리티와 관련된 파일 형식입니다.주로 Unix와 유사한 컴퓨터 운영 체제에 설치됩니다.소프트웨어 유틸리티는 원래 Programmer's Workbench(PWB/UNIX)의 일부로서 테이프 아카이브 프로그램으로서 의도되어 있으며, 이후 출시된 거의 모든 Unix 운영 체제의 컴포넌트입니다.그 이름은 copy in and out이라는 문구에서 유래한 것으로, 프로그램의 운용에 있어서의 표준 입력과 표준 출력의 사용에 대한 상세한 설명입니다.

Unix의 모든 변형은 tar와 같은 다른 백업 및 아카이브 프로그램도 지원하며,[1] 이는 더욱 널리 인식되고 있습니다.RPM 패키지 매니저, Linux 커널 2.6의 initramfs 프로그램 및 Apple Installer(pax)에서 cpio를 사용하면 cpio가 중요한 아카이브 도구가 됩니다.

원래 설계 이후 cpio와 아카이브 파일 형식은 여러 번, 때로는 호환되지 않는 리비전을 거쳤습니다.가장 주목할 만한 점은 아카이브 파일 메타 정보의 바이너리 형식에서 ASCII 기반 표현으로 변경된 것입니다.

POSIX가 pax 명령어를 위해 cpio 명령어를 포기했습니다.

역사

cpio는 Programmer's Workbench [2]프로젝트의 일부로 버전 7 Unix에 등장했습니다.

조작 및 아카이브 형식

cpio는 원래 백업 파일 아카이브를 연속적으로 테이프 장치에 저장하도록 설계되었습니다.컨텐츠는 압축되지 않지만 결과 아카이브는 gzip 또는 기타 외부 압축기를 사용하여 압축되는 경우가 많습니다.

아카이브 작성

복사 작업 중에 -o 명령줄 플래그로 시작된 아카이브를 생성할 때 cpio는 표준 입력 채널에서 파일 및 디렉터리 경로 이름을 읽고 결과 아카이브 바이트 스트림을 표준 출력에 씁니다.따라서 Cpio는 일반적으로 find 프로그램 등 아카이브할 파일 목록을 생성하는 다른 유틸리티와 함께 사용됩니다.

결과적으로 생성되는 cpo 아카이브는 파일 이름, inode 번호, 소유권, 권한 및 타임스탬프와 같은 파일 메타 정보가 포함된 헤더 섹션으로 구분된 단일 아카이브에 연결된 일련의 파일 및 디렉터리입니다.일반적으로 아카이브의 파일 이름에는 파일 확장자 cpo가 지정됩니다.

다음 예제에서는 find 유틸리티를 사용하여 현재 디렉토리에서 시작하는 경로 이름 목록을 생성하고 디렉토리 트리의 아카이브를 만듭니다.

$ find . - depth - print cpio -o > /path/cpo.cpio

추출.

cpio는 명령줄 플래그 i에 의해 시작되는 복사 동작 에 표준 입력으로부터 아카이브를 읽어내고, operating system의 파일 시스템에 아카이브된 파일을 재생성한다.

$ cpio - i - vd <archive.cpo

명령줄 플래그 d는 cpio에게 필요에 따라 디렉토리를 구축하도록 지시합니다.Flag v(상세)는 파일 이름을 추출할 때 나열합니다.

옵션 플래그 이외의 나머지 명령줄 인수는 셸과 같은 글로벌 패턴입니다.일치하는 이름을 가진 아카이브 내의 파일만 아카이브에서 복사됩니다.다음 예제에서는 아카이브에서 /etc/fstab 파일을 추출합니다.

$ cpio - i - d / etc / fstab <archive . cpo >

목록.

cpio 아카이브에 포함된 파일은 다음 호출과 함께 나열될 수 있습니다.

$ cpio - t <archive.cpio

cpo 아카이브에는 상대 경로가 아닌 절대 경로가 포함될 수 있으므로 목록이 유용할 수 있습니다(예: /bin/ls vs. bin/ls).

알았다.

Cpio는 파일을 복사하는 세 번째 유형의 작업을 지원합니다.패스스루 옵션플래그(p)로 시작됩니다.이 모드는 파일 아카이브를 실제로 작성하지 않고 복사 및 복사 단계를 결합합니다.이 모드에서 cpio는 복사 작업과 같이 표준 입력의 경로 이름을 읽지만 아카이브를 작성하는 대신 명령줄 인수로 지정된 경로에 따라 파일 시스템의 다른 위치에 디렉토리와 파일을 다시 만듭니다.

다음 예제에서는 현재 디렉토리에서 시작하는 디렉토리 트리를 파일시스템 내의 다른 경로의 new-path에 복사하여 파일 수정 시간(flag m)을 절약하고 필요에 따라 디렉토리를 생성하여 기존 파일을 무조건 치환하고 표준 출력(v)에 대한 진행률 목록을 생성합니다.

$ find . - depth - print cpio - p - p - printv new - path

POSIX 표준화

cpio 유틸리티는 POSIX.1-1988에서 표준화되어 있지만 파일 크기 및 기타 제한으로 인해 POSIX.1-2001에서 제외되었습니다.예를 들어 GNU 버전에서는 파일 크기 제한이 각각 [3]2,147,483,647바이트(2GB), 8,589,934,591바이트(8GB)인 "bin"(기본값 및 사용되지 않음) 및 "ustar"(POSIX tar)와 같은 다양한 출력 형식 옵션을 제공합니다.

cpio, ustar 및 pax 파일 형식은 현재 POSIX 1003.1-2008에 준거한 pax 유틸리티에 대해 POSIX.1-2001에 의해 정의되어 있기 때문에 cpio 및 ustar 형식의 아카이브를 읽고 쓸 수 있습니다.

실장

Linux 디스트리뷰션의 대부분은 GNU 버전을 제공합니다.cpio .FreeBSDmacOS는 BSD 라이선스를 사용합니다.[4]bsdcpiolibarchive[5]포함되어 있습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ Peek, J; O'Reilly, T; Loukides, M (1997). Unix Power Tools. O'Reilly & Associates, Inc. p. 38.13. ISBN 1-565-92260-3.
  2. ^ McIlroy, M. D. (1987). A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 (PDF) (Technical report). CSTR. Bell Labs. 139.
  3. ^ cpio 정보 문서, 옵션 노드의 bsdcpio 매뉴얼 페이지
  4. ^ 'Cpio' GNU.org.
  5. ^ "libarchive".

외부 링크