Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

256
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!