Wie kann man verschachtelte Zip ohne Extrakt erkunden?

552
Alessandro C

In bash benutze ich unzip -l, um den Inhalt eines zip anzuzeigen, ohne dessen Inhalt zu extrahieren.

Meine Frage: Welchen Befehl sollte ich verwenden, wenn ich Zip-Dateien verschachtelt habe und auch den Inhalt von verschachtelten Zip-Dateien untersuchen möchte?

Beispiel:

file1.zip | | ----- textfile.txt ----- file2.zip 

Wie entpacke ich -l in file2.zip, ohne dabei file1.zip und file2.zip zu extrahieren?

2
Versuchte zipinfo -1 file1.zip, druckt aber dasselbe wie unzip -l file1.zip Alessandro C vor 6 Jahren 0

2 Antworten auf die Frage

1
Zhenhir

Ich glaube nicht, dass dies das Standardverhalten eines der üblichen Bash-ZIP-Dienstprogramme ist. Sie müssen die ZIP-Datei vorher extrahieren, aber Sie könnten ein Skript erstellen, das nur die ZIP-Dateien im Stammverzeichnis von file1.zip extrahiert unzip -lund dann aufgerufen wird nach sich selbst aufgeräumt:

#!/bin/bash  unzip -l file1.zip  for f in $(unzip -Z1 file1.zip); do if [ $ == ".zip" ] then unzip -q -d . file1.zip $f unzip -l $f rm $f fi done; 

Ausgabe:

Archive: file1.zip Length Date Time Name --------- ---------- ----- ---- 312 2018-05-04 00:52 file2.zip 0 2018-05-04 00:52 textfile.txt --------- ------- 312 2 files Archive: file2.zip Length Date Time Name --------- ---------- ----- ---- 0 2018-05-04 00:22 file2 0 2018-05-04 00:52 textfile.txt --------- ------- 0 2 files 
0
user930412

Überprüfen Sie dieses Java-basierte Dienstprogramm nzip auf verschachtelte Reißverschlüsse. Das Extrahieren und Komprimieren verschachtelter Reißverschlüsse kann einfach mit den folgenden Befehlen durchgeführt werden. Der Listenbefehl sollte für Sie nützlich sein:

java -jar nzip.jar -c list -s readme.zip  java -jar nzip.jar -c extract -s "C:\project\readme.zip" -t readme  java -jar nzip.jar -c compress -s readme -t "C:\project\readme.zip"