Große Zip-Datei über sich selbst entpacken

Große Zip-Datei über sich selbst entpacken

Ich möchte ein 20 GB-Archiv entpacken, habe aber keinen weiteren 20-30 GB-Speicherplatz auf der Festplatte. Ist es möglich, diese Datei über sich selbst zu entpacken?

Daher wird die ZIP-Datei nach dem Entpacken gelöscht und ich habe den entpackten Inhalt.

Antwort1

Einen (Verschieben)-Schalter gibt es -mzum Entpacken nicht wie beim Zippen, aber man kann die Dateien einzeln aus dem Archiv extrahieren und sie gleich nach dem Extrahieren löschen.

Ich weiß nicht viel über OS X, aber das hier funktioniert mit Bash unter Ubuntu:

IFS=$'\n'

for file in `zipinfo -Z1 ZIPFILE`; do
    unzip ZIPFILE $file && zip -d ZIPFILE $file
done

rm ZIPFILE

unset IFS
  • IFS=$'\n'setzt den internen Feldtrenner auf eine neue Zeile, damit Dateinamen mit Leerzeichen richtig behandelt werden.

  • zipinfo -Z1 ZIPFILElistet den Inhalt vonZIP-DATEI, Zeile für Zeile.

  • for file in `...`; do ??? donedurchläuft die Ausgabe von ..., setzt die VariableDateiDie Ausgabe des Befehls wird in einer Zeile zusammengefasst und ausgeführt ???.

  • unzip ZIPFILE $file && zip -d ZIPFILE $fileextrahiert die inDateiaus der ZIP-Datei und löscht diese aus dem Archiv ( zip -d).

    Hierdurch &&wird sichergestellt, dass der zweite Befehl nur ausgeführt wird, wenn der erste erfolgreich beendet wurde.

  • rm ZIPFILEentfernt das (leere) Archiv.

  • unset IFSstellt den Standardwert des internen Dateitrennzeichens wieder her.

Antwort2

Ich glaube, das ist nicht möglich. In Ihrem Fall benötigen Sie ein zusätzliches Speichermedium, um den extrahierten Inhalt zu senden. Oder verschieben Sie die Zip-Datei dorthin und extrahieren Sie sie auf Ihre Festplatte.

verwandte Informationen