zip-extractor liest archiven aus stdin

1935
vect

Wie folgt aus der UNZIP(1L)Manpage

Archive, die von der Standardeingabe gelesen werden, werden noch nicht unterstützt

Gibt es andere CLI-Programme, die unter Linux / cygwin ausgeführt werden und aus zip-Archiven extrahiert werden können, die sie aus stdin lesen?

2
Hmm 7z war das erste, was mir in den Sinn kam, aber es war ein No-Go ... `7z x -si <sample.zip` gibt` Error: E_NOTIMPL` zurück und die Dokumentation bestätigt, dass das Lesen von zip-Dateien aus stdin noch nicht unterstützt wird. Baris Demiray vor 8 Jahren 0
`cat archive.zip | tar -xvf -` funktioniert unter BSD / OS X, jedoch nicht mit gnu tar. Eir Nym vor 8 Jahren 0

3 Antworten auf die Frage

2
Saftever

Wiederholung meiner Antwort :

BusyBox's unzipkönnen stdin nehmen und alle Dateien extrahieren.

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

Der Bindestrich hinter unzipist, stdin als Eingabe zu verwenden.

Du kannst sogar,

cat file.zip | busybox unzip - 

Aber das ist einfach überflüssig unzip file.zip.

Wenn Ihre Distribution BusyBox standardmäßig verwendet (z. B. Alpine), führen Sie sie einfach aus unzip -.

BusyBox ist in Cygwin verfügbar .

0
Hannu

Die Antwort auf Ihre Frage hängt von der vorliegenden ZIP-Datei ab.

gunzip < sample.zipfunktioniert aber nur, wenn eine kompatible Kompressionsmethode verwendet wurde.
Überprüfen Sie man gunzipoder https://www.google.se/?#safe=off&q=man+gunzip ... oder probieren Sie es einfach aus.

Eine weitere Einschränkung ist, dass gzip nur Archive verarbeiten kann, die nicht mehr als eine Datei enthalten. Beim Versuch, mit gunzip aus einer ZIP-Datei mit mehreren Dateien zu extrahieren, habe ich die folgende Fehlermeldung: `gzip: stdin hat mehr als einen Eintrag - Rest ignoriert. ' vect vor 8 Jahren 0
0
dave_thompson_085

(für Windows verbessert) WENN Sie Java JDK haben (großes Wenn!)

 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 

Ich bewerte dies mit 7/10 auf der Kludgeskala.