如何检查 gz 文件的有效性,我没有文件的哈希值,我正在使用,gzip -t
但它没有返回任何输出。
答案1
该gzip -t
命令仅向 shell 返回退出代码,说明文件是否通过了完整性测试。
示例(在脚本中):
if gzip -t file.gz; then
echo 'file is ok'
else
echo 'file is corrupt'
fi
添加-v
将使其实际通过消息报告结果。
例子:
$ gzip -v -t file.gz
file.gz: OK
所以文件没问题。让我们破坏文件(通过0
在文件中写入字节 40 处的字符)并重试。
$ 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
文件相对于其压缩的完整性不是保证该文件内容就是你所相信的。如果您有文件提供者提供的 MD5 校验和(或类似校验和),那么您将能够获得额外的确认,证明该文件不仅是有效的gzip
存档,而且其内容符合您的预期成为。
答案2
gzip -t
不有任何输出(返回码除外)(如果它是正确的 gzip 压缩文件)。
如果您尝试执行以下操作,它只会返回错误不是gzip 压缩文件:
steamsrv@leviathan:~$ gzip -t commands.txt
gzip: commands.txt: not in gzip format
结论:您的文件几乎可以肯定是 gzip 压缩文件。我无法告诉您的是它是否是您认为应该是的确切文件,这就是哈希的有用之处......