압축된 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의 답변은 모두 나에게 도움이 되었지만 세 가지 세부 사항 때문에 한동안 당황했습니다.
- 패턴으로 작동하려면 일치하는 패턴을 인용해야 합니다 :P
- 옵션은
--no-absolute-filenames
반드시앞서다명령줄의 패턴 - 해당 옵션은 파일 이름에서 선행을 제거하므로
/
일치하는 패턴에서도 선행을 생략해야 합니다./
답변4
이 Wikipedia 페이지는cpio
좋은 메모가 있어요.
자세한 내용은 다음을 참조하세요.cpio
수동.
동일한 Wikipedia 페이지의 링크tar
아카이브 와의 비교에 대해 논의합니다..
그리고 여기의 예가 있습니다.형식 cpio
과 함께 사용tar
.