ZIP no extraerá todos los archivos en Debian

ZIP no extraerá todos los archivos en Debian

Mi máquina funciona Debian 6.0.7y tengo Zip 3.0 (July 5th 2008), by Info-ZIP. Cuando intento descomprimir un archivo .zip, 2 o 3 de cada 10 veces no extrae todo. Faltarían 2 o 3 archivos.

Al principio pensé que era por el tamaño del archivo y algunas limitaciones que no conocía, pero luego me di cuenta de que también hacía lo mismo con archivos pequeños de 150 MB. Luego pensé que tal vez era porque lo estaba descomprimiendo a través de un archivo de script bash, así que probé descomprimiendo manualmente los archivos y nuevamente ese no era el problema.

Finalmente hoy lo revisé con un archivo .zip de 140 MB. Extraje el archivo manualmente y usando mi script .sh 10 veces y cada vez lo ejecutaba ls -h -R > ../test_n.txtpara mantener un registro de la carpeta después de cada descompresión. Después de comparar los 20 archivos, vi que 7 de cada 20 veces se perderían de 2 a 8 archivos del archivo .zip.

¿Alguien tiene alguna idea de por qué podría estar pasando esto?

Respuesta1

No tengo absolutamente ninguna idea de lo que podría estar pasando... sin embargo, aquí hay algunas cosas que puedes probar para depurar el problema:

  • Si esa zipversión tiene una -lbandera o algo más para verificar qué archivos hay dentro del archivo zip sin descomprimirlo, eso podría ayudar.

    zip -l file.zip
    

    Esto le mostrará el contenido del archivo zip, por lo que debe esperar la misma cantidad de archivos después de descomprimirlo; puede usarlo como prueba en su secuencia de comandos, solo para asegurarse de que siempre los está descomprimiendo todos.

  • ¿Son correctos los archivos zip? Si obtiene el archivo de otra fuente, realice una suma de verificación del archivo y luego compárelo con el archivo zip que está intentando descomprimir. Si es diferente, entonces la corrupción del archivo podría ser la causa de este problema.

  • ¿Cuál es el código de retorno del zipcomando? Después de descomprimir el archivo usando zip, emita un echo $?comando para verificar el código de retorno; si es diferente de cero, entonces el programa le indica que, de alguna manera, la ejecución del programa no fue exitosa en general. Tenga en cuenta que este valor puede variar, pero hasta donde yo sé, usar cero para éxito y otros números para error/advertencia es bastante estándar en las utilidades de Unix/Linux.

Espero que esto ayude :)

información relacionada