mac create linux macos bash zip

create - zip linux



Archivos Zip corruptos de más de 4 gigabytes. Sin advertencias ni errores. ¿Perdí mis datos? (4)

Creé un montón de archivos zip en mi computadora (Mac OS X) usando un comando como este:

zip -r bigdirectory.zip bigdirectory

Luego, guardé estos archivos zip en algún lugar y borré los directorios originales.

Ahora, cuando intento extraer los archivos zip, obtengo este tipo de error:

$ unzip -l bigdirectory.zip Archive: bigdirectory.zip warning [bigdirectory.zip]: 5162376229 extra bytes at beginning or within zipfile (attempting to process anyway) error [bigdirectory.zip]: start of central directory not found; zipfile corrupt. (please check that you have transferred or created the zipfile in the appropriate BINARY mode and that you have compiled UnZip properly)

Desde entonces, he descubierto que esto podría deberse a que zip no puede manejar archivos de un tamaño determinado, tal vez 4 conciertos. Al menos lo leí en alguna parte.

Pero, ¿por qué el comando zip me permite crear estos archivos? El archivo zip en cuestión es de 9457464293 bytes y me permite hacer muchos más como este sin ningún error.

Claramente puede crear estos archivos.

Realmente espero que mis archivos no se pierdan. Aprendí mi lección y en el futuro revisaré mis archivos antes de eliminar los archivos originales, y probablemente también use otro formato de archivo como tar / gzip.

Por ahora sin embargo, ¿qué puedo hacer? Realmente necesito mis archivos.

Actualizar

Algunas personas han sugerido que mi herramienta de unzip no es compatible con archivos lo suficientemente grandes (lo cual es extraño, porque usé el zip OS X zip y unzip ). En cualquier caso, instalé un nuevo unzip de homebrew , y he aquí que ahora obtengo un error diferente:

$ unzip -t bigdirectory.zip testing: bigdirectory/1.JPG OK testing: bigdirectory/2.JPG OK testing: bigdiretoryy/3.JPG OK testing: bigdirectory/4.JPG OK : : file #289: bad zipfile offset (local header sig): 4294967295 (attempting to re-compensate) file #289: bad zipfile offset (local header sig): 4294967295 file #290: bad zipfile offset (local header sig): 9457343448 file #291: bad zipfile offset (local header sig): 9457343448 file #292: bad zipfile offset (local header sig): 9457343448 file #293: bad zipfile offset (local header sig): 9457343448 : :

Esto es realmente preocupante porque necesito que me devuelvan estos archivos. Y definitivamente no hubo errores al crear este archivo zip con la herramienta zip del sistema. De hecho, hice varios de estos al mismo tiempo y ahora todos están mostrando el mismo problema.

Si el archivo está realmente dañado, ¿cómo lo arreglo?

O, si no está dañado, ¿cómo lo extraigo?


Prueba 7z x

Tuve el mismo problema con unzip %x en Linux para un archivo .zip más de 4GB, compuesto por un only DEFLATED entries can have EXT descriptor error de only DEFLATED entries can have EXT descriptor .

El comando 7z x resolvió todos mis problemas sin embargo.

Sin embargo, tenga cuidado, el comando 7z x extraerá todos los archivos con una ruta en el directorio actual. La opción -o permite especificar un directorio de salida.



Me enfrenté exactamente al mismo problema cuando intenté unzip archivos zip de tamaños enormes (~ 7GB). Estaba seguro de que no había ningún error al copiar los archivos zip en el servidor. (Lo verifiqué con rsync ).

Dependiendo de su situación, la solución es:

1) Si está haciendo esto en una máquina local, haga clic con el botón derecho en el archivo zip y proporcione Extract Here , esto funcionará para archivos (.zip) de cualquier tamaño.

2) Si sus archivos zip están en un servidor remoto, primero cargue el sistema de archivos del servidor localmente usando sftp ( sftp://[email protected] ). Después de eso, simplemente navegue hasta el directorio y vuelva a hacer lo mismo que hizo en (1). Es decir, haga clic derecho en el archivo zip y extraerlo.

Puede que no sea la mejor solución, pero esa es una forma de hacerlo.


Tuve un problema similar al hacer una copia de seguridad de un directorio de 12GB antes de realizar un formato de disco duro. Curiosamente, usé el mismo comando que tú.

Leí alrededor y encontré sugerencias para ejecutar:

zip -F

y

zip -FF

para tratar de arreglar el archivo.

Lamentablemente estos no funcionaron y todavía recibí errores.

Después de mirar un poco más alrededor, encontré el comando ídem y funcionó perfectamente en mi archivo zip original (sin tocar):

ditto -x -k original-file.zip dst-directory -x to extract an archive -k Specifies it to be a PKZip archive instead of the default CPIO

Después de usar este comando, extraje con éxito todos los archivos.