Entpacken Sie mehrere Dateien

12

Ich glaube nicht, dass ich der einzige mit diesem Problem bin, aber leider konnte ich zwischen zuvor gestellten Fragen nicht die richtige Antwort finden.

Es ist ein sehr häufiges Verfahren auf Torrent-Sites, bei denen der Inhalt in viele kleine Archive aufgeteilt ist. Manchmal enthalten diese kleinen indizierten Zip-Archive weitere seltene Archive.

Meine Frage lautet also: Wie gehen Sie mit diesem Problem um? Wie entpacken Sie diese Dateien rekursiv?

rda
quelle
2
Könnten Sie ein Beispiel geben?
ztik
Suchen Sie eine manuelle oder eine vollständig automatisierte Lösung?
David Foerster
Nur eine Anmerkung, normalerweise, wenn Sie diese Art von Torrents über illegale Software / Filme finden, und Sie werden nie wirklich zum Ende dieser .rar / .zip-Dateien gelangen, weil es gefälscht ist.
Jeggy

Antworten:

17

Drücken Sie dazu einfach Ctrl+ Alt+ Tauf Ihrer Tastatur, um das Terminal zu öffnen. Führen Sie beim Öffnen die folgenden Befehle aus:

unzip '*.zip'

Sie können auch mit der rechten Maustaste auf die erste Datei in der Gruppe klicken und hier Extrahieren auswählen. Dadurch werden auch alle Dateien in dieser Gruppe angezeigt.

Mitch
quelle
Laut Handbuch werden unzip geteilte Archive nicht unterstützt (siehe ersten Absatz im Abschnitt „Bugs“).
David Foerster
@ DavidFoerster hat es gerade getestet und es funktioniert.
Mitch
Ok, dann scheint das Handbuch falsch zu sein. Guter Fang.
David Foerster
@mitch in meinem Fall funktioniert es nicht, es ist "Fehler beim Laden der Zip-Datei", aber unter Windows das gleiche Verzeichnis auf der gleichen Festplatte entpacken mit WinRar, vielleicht haben Sie versucht, mehrere, aber> separate <Zip-Datei gleichzeitig zu entpacken? das ist aber eine andere Sache.
Papajo
2

So entpacken Sie mehrere Dateien mit einer Schleife:

for z in *.zip; do unzip "$z"; done
Rohith Madhavan
quelle
@DavidFoerster Die beiden Methoden sind im Wesentlichen gleich. *.zipbietet alle möglichen Dateien, die mit einer Zip-Erweiterung enden, die die Schleife nacheinander entpackt. Dies ist auch der Grund, warum @Mitch in seine Antwort einfache Anführungszeichen aufgenommen hat '*.zip', damit die Shell sie nicht als Platzhalter erkennt.
Rohith Madhavan
1
Dies ist tatsächlich eine bessere Methode, da Sie eine Dateinamenliste angeben können, anstatt "alle Dateien im Verzeichnis" zu sagen. Wenn Sie eine bestimmte Liste von Zip-Dateien nacheinander extrahieren möchten, können Sie "für z in XYZTG; do -o" $ z.zip "; done" ausführen und dies in dieser Reihenfolge tun. Dies ist die bessere Antwort imho.
John Hamilton
0

CTRL+ ALT+ Tum ein Terminal zu öffnen

for f in $(ls | egrep zip); do
  unzip $f -vd UnzippedDirectory
done

Dies durchläuft im Grunde alle Reißverschlüsse, die Sie in Ihrem aktuellen Verzeichnis erhalten haben, und entpackt jeden von ihnen ausführlich (daher das -vFlag) in ein Verzeichnis ( -dFlag).

Daniel Andrei Mincă
quelle