Lệnh trích xuất cơ bản cpio, tương đương 'tar xzvf'?


12

Tôi đã nhận được bản phân phối phần mềm Unix dưới dạng tệp cpio được nén. Lệnh tốt nhất để giải nén các tập tin là gì?


Khi bạn đã làm man cpio Bạn đã thấy gì?

5
Tôi thấy: -i -o -p -t -B -c -C -f -F -H -M -n -v -V -W -b -r -s -S -E -A -O -l - 0 -a -I -L -R -d -m -u -? --extract --create --pass-through --list --block-size = --io-size = --force-local --nonmatching --file = --format = --message = --numeric- uid-gid --quiet --rsh-ra lệnh -only-xác minh-crc - sửa đổi-thời gian - không-bảo tồn-chủ sở hữu - thưa thớt - không điều kiện
Mark Harrison

Câu trả lời:


11
gzip -cd foo.cpio.gz | cpio -idmv
  • i: giải nén (đầu vào)
  • d: tạo thư mục
  • m: giữ gìn thời gian
  • v: dài dòng

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

Mặc dù đây là một câu hỏi cũ, nhưng nó xuất hiện rất cao trên Google, vì vậy tôi nghĩ rằng tôi có thể cập nhật nó. Tôi đồng ý với câu trả lời được chấp nhận nói chung, nhưng bạn nên thêm "- không tên tệp tuyệt đối" trừ khi bạn có ý định ghi đè lên các tệp hệ thống quan trọng trên máy của mình. Ngoài ra, cá nhân, tôi thích "zcat" hơn "gzip -cd" hoặc "gunzip -c".

Cuối cùng, lưu ý rằng bạn cần chạy cpio với quyền root (ví dụ: sudo) nếu bạn đang trích xuất một hệ thống tệp gốc có chứa các nút thiết bị.



0

Ví dụ: để trích xuất nội dung lưu trữ của / etc / httpd / vào thư mục hiện tại, tạo thư mục con ./etc/httpd/

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

Câu trả lời được chấp nhận và Matt đều hữu ích cho tôi nhưng tôi đã bối rối một lúc vì ba chi tiết:

  1. Mẫu phù hợp cần được trích dẫn để hoạt động như một mẫu: P
  2. Tùy chọn --no-absolute-filenames phải đứng trước mẫu trên dòng lệnh
  3. Vì tùy chọn đó loại bỏ hàng đầu / từ tên tệp, mẫu phù hợp cũng phải bỏ qua hàng đầu /
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.