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ì?
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ì?
Câu trả lời:
gzip -cd foo.cpio.gz | cpio -idmv
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ị.
Trang Wikipedia này trên cpio
có một số ghi chú tốt.
Để biết thêm chi tiết, tham khảo cpio
hướng dẫn sử dụng .
Một liên kết từ cùng một trang Wikipedia thảo luận so sánh với tar
tài liệu lưu trữ .
Và, đây là một ví dụ về sử dụng cpio
với tar
định dạng .
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:
--no-absolute-filenames
phải đứng trước mẫu trên dòng lệnh /
từ tên tệp, mẫu phù hợp cũng phải bỏ qua hàng đầu /
man cpio
Bạn đã thấy gì?