Risposte:
Il gzip -t
comando restituisce solo un codice di uscita alla shell che indica se il file ha superato o meno il test di integrità.
Esempio (in uno script):
if gzip -t file.gz; then
echo 'file is ok'
else
echo 'file is corrupt'
fi
L'aggiunta -v
lo farà effettivamente riportare il risultato con un messaggio.
Esempio:
$ gzip -v -t file.gz
file.gz: OK
Quindi il file è ok. Corrompiamo il file (scrivendo il carattere 0
nel byte 40 nel file) e riproviamo.
$ 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
L'integrità di un file rispetto alla sua compressione non garantisce che il contenuto del file sia quello che ritieni sia. Se hai un checksum MD5 (o un checksum simile) del file da chiunque lo abbia fornito, allora potresti ottenere un'ulteriore conferma che il file non è solo un gzip
archivio valido , ma anche che il suo contenuto è quello che ti aspetti essere.
gzip -t
non ha alcun output, tranne il codice di ritorno, se è un file compresso gzip corretto.
Restituisce un errore solo se lo stai provando su qualcosa che non è un file compresso gzip:
steamsrv@leviathan:~$ gzip -t commands.txt
gzip: commands.txt: not in gzip format
Conclusione: il tuo file è quasi certamente un file compresso gzip. Quello che non posso dirti è se è il file esatto che pensi debba essere, ed è per questo che l'hash sarebbe utile ...