检查gz文件的有效性


13

如何检查gz文件的有效性,我没有该文件的哈希值,我正在使用gzip -t但它不返回任何输出。

谢谢

Answers:


22

gzip -t命令仅向外壳返回退出代码,说明文件是否通过完整性测试。

示例(在脚本中):

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档案,而且其内容也正是您所期望的成为。


4

gzip -t不会任何输出,除了返回码,如果它是一个正确的gzip压缩文件。

如果您尝试对 gzip压缩文件进行尝试,则只会返回错误:

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

gzip: commands.txt: not in gzip format

结论:您的文件几乎可以肯定是gzip压缩文件。我无法告诉您的是,它是否是您认为应该的确切文件,所以哈希将对...有用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.