Quiero descomprimir un archivo de 20 Gb, pero no tengo otros 20-30 Gb de espacio libre en el disco duro. ¿Es posible descomprimir este archivo sobre sí mismo?
De modo que ese archivo zip se eliminará después de descomprimirlo y tendré el contenido descomprimido.
Respuesta1
No hay -m
un interruptor (mover) para descomprimir como sí lo hay para zip, pero puede extraer los archivos del archivo uno por uno y eliminarlos inmediatamente después de extraerlos.
No sé mucho sobre OS X, pero esto funciona con Bash en Ubuntu:
IFS=$'\n'
for file in `zipinfo -Z1 ZIPFILE`; do
unzip ZIPFILE $file && zip -d ZIPFILE $file
done
rm ZIPFILE
unset IFS
IFS=$'\n'
establece el separador de campo interno en nueva línea, por lo que los nombres de archivos que contienen espacios se manejarán correctamente.zipinfo -Z1 ZIPFILE
enumera el contenido deARCHIVO ZIP, uno por línea.for file in `...`; do ??? done
recorre la salida de...
, establece la variablearchivoa una línea la salida del comando y se ejecuta???
.unzip ZIPFILE $file && zip -d ZIPFILE $file
extrae el archivo especificado enarchivodel archivo zip y lo elimina del archivo (zip -d
).Aquí,
&&
se asegura de que el segundo comando se ejecute solo si el primero finalizó exitosamente.rm ZIPFILE
elimina el archivo (vacío).unset IFS
Restaura el valor predeterminado del separador de archivos interno.
Respuesta2
Creo que no es posible. En tu caso necesitarás un medio de almacenamiento extra para enviar el contenido extraído; o mueva el zip y extráigalo a su disco duro.