Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

263
Vistas
diff archivos dentro de zip sin extraerlo

¿Hay alguna forma de realizar una operación de diferenciación en dos archivos en dos zips sin extraerlos? Si no, ¿alguna otra solución para compararlos sin extraerlos?

Gracias.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Combinando las respuestas hasta el momento, la siguiente función bash comparará las listas de archivos de los archivos zip. Los listados incluyen una salida detallada ( unzip -v ), por lo que se pueden comparar las sumas de verificación. La salida se ordena por nombre de archivo ( sort -k8 ) para permitir la comparación lado a lado y la salida diff se expande ( W200 ) para que los nombres de archivo sean visibles en la vista lado a lado.

 function zipdiff() { diff -W200 -y <(unzip -vql "$1" | sort -k8) <(unzip -vql "$2" | sort -k8); }

Esto se puede agregar a su archivo ~/.bashrc para usarlo desde cualquier consola. Se puede usar con zipdiff a.zip b.zip . Canalizar la salida a menos o redirigir a un archivo es útil para archivos zip grandes.

over 4 years ago · Santiago Trujillo Denunciar

0

unzip -l enumerará el contenido de un archivo zip. Luego puede pasar eso a diff de la manera normal como se menciona aquí: https://askubuntu.com/questions/229447/how-do-i-diff-the-output-of-two-commands

Entonces, por ejemplo, si tuviera dos archivos zip:

 foo.zip bar.zip

Puede ejecutar diff -y <(unzip -l foo.zip) <(unzip -l bar.zip) para hacer una diferenciación lado a lado del contenido de los dos archivos.

¡Espero que ayude!

over 4 years ago · Santiago Trujillo Denunciar

0

Si desea diff dos archivos (como en ver la diferencia ), debe extraerlos, ¡aunque solo sea en la memoria!

Para ver la diferencia de dos archivos en dos zips, puede hacer algo como esto (sin verificación de errores ni nada):

 # define a little bash function function zipdiff () { diff -u <(unzip -p $1 $2) <(unzip -p $3 $4); } # test it: create a.zip and b.zip, each with a different file.txt echo hello >file.txt; zip a.zip file.txt echo world >file.txt; zip b.zip file.txt zipdiff a.zip file.txt b.zip file.txt --- /dev/fd/63 2016-02-23 18:18:09.000000000 +0100 +++ /dev/fd/62 2016-02-23 18:18:09.000000000 +0100 @@ -1 +1 @@ -hello +world

Nota: unzip -p extrae archivos a pipe (stdout).

Si solo desea saber si los archivos son diferentes, puede inspeccionar sus sumas de verificación usando

 unzip -v -l zipfile [file_to_inspect]

Nota: -v significa detallado y -l lista de contenidos)

 unzip -v -l a.zip Archive: a.zip Length Method Size Cmpr Date Time CRC-32 Name -------- ------ ------- ---- ---------- ----- -------- ---- 6 Stored 6 0% 2016-02-23 18:23 363a3020 file.txt -------- ------- --- ------- 6 6 0% 1 file unzip -v -l b.zip Archive: b.zip Length Method Size Cmpr Date Time CRC-32 Name -------- ------ ------- ---- ---------- ----- -------- ---- 6 Stored 6 0% 2016-02-23 18:23 dd3861a8 file.txt -------- ------- --- ------- 6 6 0% 1 file

En el ejemplo anterior, puede ver que las sumas de verificación (CRC-32) son diferentes.

También te puede interesar este proyecto: https://github.com/nhnb/zipdiff

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda