Verifique a validade do arquivo gz

Verifique a validade do arquivo gz

Como posso verificar a validade de um arquivo gz, não tenho o hash do arquivo, estou usando gzip -tmas não está retornando nenhuma saída.

Responder1

O gzip -tcomando retorna apenas um código de saída para o shell informando se o arquivo passou no teste de integridade ou não.

Exemplo (em um script):

if gzip -t file.gz; then
    echo 'file is ok'
else 
    echo 'file is corrupt'
fi

Adicionar -vfará com que ele realmente relate o resultado com uma mensagem.

Exemplo:

$ gzip -v -t file.gz
file.gz:        OK

Então o arquivo está ok. Vamos corromper o arquivo (escrevendo o caractere 0no byte 40 do arquivo) e tentar novamente.

$ dd seek=40 bs=1 count=1 of=file.gz <<<"0"
1+0 records in
1+0 records out
1 bytes transferred in 0.000 secs (2028 bytes/sec)
$ gzip -v -t file.gz
file.gz:        gzip: file.gz: Inappropriate file type or format

A integridade de um arquivo em relação à sua compactação nãonãogarantir que o arquivoconteúdoé o que você acredita que é. Se você tiver uma soma de verificação MD5 (ou alguma soma de verificação semelhante) do arquivo de quem o forneceu, você poderá obter uma confirmação adicional de que o arquivo não é apenas um gziparquivo válido, mas também que seu conteúdo é o que você espera. ser.

Responder2

gzip -tnãoterqualquer saída, exceto o código de retorno, se for um arquivo compactado gzip correto.

Ele só retorna um erro se você estiver tentando algo quenão éum arquivo compactado gzip:

steamsrv@leviathan:~$ gzip -t commands.txt

gzip: commands.txt: not in gzip format

Conclusão: seu arquivo é quase certamente um arquivo compactado gzip. O que não posso dizer é se é o arquivo exato que você acha que deveria ser, e é para isso que o hash seria útil ...

informação relacionada