O comando gzip -t
só retorna um código de saída para o shell dizendo se o arquivo passou no teste de integridade ou não.
Exemplo:
$ gzip -t file.gz && echo ok || echo bad
ok
Então o arquivo está ok. Vamos corromper o arquivo (escrevendo o caractere 0
no byte 40 no arquivo) e tente 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 -t file.gz && echo ok || echo bad
gzip: file.gz: Input/output error
bad
A integridade de um arquivo em relação à sua codificação não garante que o conteúdo do arquivo seja o que você acredita ser. Se você tiver uma soma de verificação MD5 do arquivo de quem forneceu, então você teria uma confirmação adicional de que o arquivo não é apenas um gzip
archive válido, mas também é o arquivo que você quer que seja.