zip trích xuất đọc lưu trữ từ stdin


2

Như sau từ UNZIP(1L)trang người đàn ông

Lưu trữ đọc từ đầu vào tiêu chuẩn chưa được hỗ trợ

Có chương trình CLI nào khác chạy trên Linux / cygwin có thể trích xuất từ ​​kho lưu trữ zip đọc chúng từ stdin không?


Hmm 7z là điều đầu tiên tôi nghĩ đến nhưng đó là điều không nên ... 7z x -si < sample.ziptrả về Error: E_NOTIMPLvà tài liệu xác nhận rằng việc đọc các tệp zip từ stdin chưa được hỗ trợ.
Baris Demiray

cat archive.zip | tar -xvf -hoạt động trên BSD / OS X, nhưng không hoạt động với gnu tar.
Eir Nym 24/07/2015

Câu trả lời:


2

Đăng lại câu trả lời của tôi :

BusyBox unzipcó thể lấy stdin và giải nén tất cả các tệp.

wget -qO- http://downloads.wordpress.org/plugin/akismet.2.5.3.zip | busybox unzip -

Dấu gạch ngang sau unziplà sử dụng stdin làm đầu vào.

Bạn có thể,

cat file.zip | busybox unzip -

Nhưng đó chỉ là dư thừa unzip file.zip.

Nếu distro của bạn sử dụng BusyBox theo mặc định (ví dụ: Alpine), chỉ cần chạy unzip -.

BusyBox có sẵn trong Cygwin.


0

Câu trả lời cho câu hỏi của bạn phụ thuộc vào tệp zip trong tay.

gunzip < sample.zipsẽ hoạt động, nhưng chỉ khi một phương pháp nén tương thích đã được sử dụng.
Kiểm tra man gunziphoặc https://www.google.se/?#safe=off&q=man+gunzip ... hoặc chỉ cần thử nó.


Một hạn chế nữa là gzip chỉ có thể xử lý các tài liệu lưu trữ không chứa nhiều hơn một tệp. Tôi gặp lỗi sau khi cố gắng giải nén bằng gunzip từ một zip chứa nhiều tệp : gzip: stdin has more than one entry--rest ignored.
vect

0

(được cải thiện cho Windows) NẾU bạn có Java JDK (lớn nếu!)

 get_zip_content | jar x
 # xv to list while extracting
 # optionally specify entries to extract; default is all
 # supply full /path_to_jdk/bin/jar if it's not in PATH

Tôi đánh giá điều này khoảng 7/10 trên thang đo bùn.

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.