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 -m
zum 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 ZIPFILE
listet den Inhalt vonZIP-DATEI, Zeile für Zeile.for file in `...`; do ??? done
durchläuft die Ausgabe von...
, setzt die VariableDateiDie Ausgabe des Befehls wird in einer Zeile zusammengefasst und ausgeführt???
.unzip ZIPFILE $file && zip -d ZIPFILE $file
extrahiert 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 ZIPFILE
entfernt das (leere) Archiv.unset IFS
stellt 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.