Por que existem diferenças binárias entre os arquivos compactados gerados exatamente da mesma maneira do mesmo arquivo inicial?

4

Eu uso o comando "diff" para comparar dois arquivos compactados gerados usando o zip no mesmo arquivo inicial e eles são reportados como sendo diferentes. No entanto, quando eu descompactar e usar o comando "diff", nenhuma diferença é mostrada. Eu notei isso com zip e gzip.

    
por Christopher Bottoms 18.12.2009 / 20:48

4 respostas

2

Você também pode gostar de usar zdiff se quiser comparar o conteúdo compactado.

    
por 18.12.2009 / 22:43
13

Um dos campos no cabeçalho do gzip é diferente entre os dois arquivos. Um desses campos é o horário da última modificação do arquivo compactado (em segundos desde 1970) ou se os dados compactados não foram lidos de um arquivo e, em seguida, a hora em que o arquivo foi compactado.

Mesmo uma diferença de um segundo é suficiente para fazer com que os arquivos gzip não coincidam.

    
por 18.12.2009 / 21:47
2

Duas causas possíveis:

  • algoritmo de compactação diferente usado pelo mesmo programa de compactação ou
  • diferentes programas de compactação
por 18.12.2009 / 20:56
2

Você pode usar a opção gzip --no-name (ou -n ) para impedir que o gzip inclua o nome do arquivo original e o registro de data e hora no cabeçalho do gzip. Isso deve evitar incompatibilidades quando os dados são os mesmos, supondo que o mesmo nível de compactação seja usado. Uma maneira de adicionar essa opção aos comandos gzip é definir a variável de ambiente GZIP , para que essa opção seja usada por todos os comandos gzip. Por exemplo, em um shell compatível com o Bourne, como bash,

export GZIP="--no-name -6"

ou

export GZIP=--no-name
    
por 27.09.2013 / 14:50