cpio 기본 추출 명령, 'tar xzvf'와 동일합니까?

cpio 기본 추출 명령, 'tar xzvf'와 동일합니까?

압축된 cpio 파일로 Unix 소프트웨어 배포판을 받았습니다. 파일을 추출하는 가장 좋은 명령은 무엇입니까?

답변1

gzip -cd foo.cpio.gz | cpio -idmv
  • i : 추출(입력)
  • d : 디렉토리 생성
  • m : mtime 보존
  • v : 장황하다

답변2

mkdir archive
cd archive
zcat ../archive.cpio.gz | cpio -idmv --no-absolute-filenames

오래된 질문이지만 Google 검색 상위에 표시되므로 업데이트해야겠다고 생각했습니다. 나는 일반적으로 허용되는 답변에 동의하지만 컴퓨터의 중요한 시스템 파일을 덮어쓰려는 것이 아니라면 "--no-absolute-filenames"를 추가해야 합니다. 또한 개인적으로 "gzip -cd" 또는 "gunzip -c"보다 "zcat"을 선호합니다.

마지막으로 장치 노드가 포함된 루트 파일 시스템을 추출하는 경우 루트(예: sudo)로 cpio를 실행해야 합니다.

답변3

예를 들어 /etc/httpd/의 아카이브된 내용을 현재 디렉터리로 추출하려면 하위 디렉터리 ./etc/httpd/를 생성합니다.

mkdir restored-etc-httpd
cd restored-etc-httpd    
zcat archive.cpio.gz | cpio -idmv --no-absolute-filenames "*etc/httpd/*"

수락된 답변과 Matt의 답변은 모두 나에게 도움이 되었지만 세 가지 세부 사항 때문에 한동안 당황했습니다.

  1. 패턴으로 작동하려면 일치하는 패턴을 인용해야 합니다 :P
  2. 옵션은 --no-absolute-filenames반드시앞서다명령줄의 패턴
  3. 해당 옵션은 파일 이름에서 선행을 제거하므로 /일치하는 패턴에서도 선행을 생략해야 합니다./

답변4

이 Wikipedia 페이지는cpio좋은 메모가 있어요.
자세한 내용은 다음을 참조하세요.cpio수동.

동일한 Wikipedia 페이지의 링크tar아카이브 와의 비교에 대해 논의합니다..
그리고 여기의 예가 있습니다.형식 cpio과 함께 사용tar.

관련 정보