Comparando arquivos zip

2

Precisamos comparar o conteúdo em cada um dos dois arquivos .zip que temos. Cada arquivo .zip tem diferentes extensões de arquivo. Cada arquivo .zip também contém outro arquivo .zip e alguns subdiretórios.

Não temos o luxo de usar o utilitário zipcomp . Como podemos comparar todos os arquivos nos dois arquivos zip e exibir os arquivos idênticos para matching.txt arquivo de saída e arquivos não idênticos para non-matching.txt arquivo de saída?

A idéia é descobrir quais arquivos em um arquivo zip, produzidos por uma compilação, foram alterados / modificados em outra execução posterior.

    
por chz 06.04.2013 / 08:11

1 resposta

4

O comando unzip -lv file.zip imprime o conteúdo do file.zip , incluindo o CRC32 de todos os arquivos do arquivo (obtenha unzip para Windows no link ou Sourceforge ).

Tendo isso, você pode simplesmente usar

unzip -lv file1.zip > list1.txt
unzip -lv file2.zip > list2.txt

e compare o conteúdo de list1.txt vs list2.txt usando o utilitário como diff ou diffuse . Se você quiser uma abordagem mais automatizada, pode escrever um script simples em Perl ou Python para comparar esses arquivos de listagem (dica - use o hash Perl ou o dicionário Python em cada arquivo CRC32 que foi impresso por unzip -lv .

    
por 06.04.2013 / 08:52