检查gz文件的有效性

检查gz文件的有效性

如何检查 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 压缩文件。我无法告诉您的是它是否是您认为应该是的确切文件,这就是哈希的有用之处......

相关内容