是否可以验证 tar.gz 文件是否已损坏

is it possible to verify if tar.gz file is corrupted

我们想检查 tar.gz 个文件是否损坏

例如

我使用文件命令

file  spark2-hdp-yarn-archive.tar.gz
spark2-hdp-yarn-archive.tar.gz: gzip compressed data, was "spark2-hdp-yarn-archive.tar", last modified: Wed Aug  1 15:05:27 2018, max compression

在这种情况下,文件似乎没问题

但我不确定文件命令是否是检查压缩文件的正确方法

其次表明 tar.gz 文件已损坏的预期结果是什么?

gzip 工具允许您测试存档。您将输入类似

的命令
gzip -t spark2-hdp-yarn-archive.tar.gz

根据手册页,-t 标志测试文件的完整性。测试文件时可能会收到很多错误,但我最常看到的损坏档案是

gzip: blah.gz: unexpected end of file

(blah.gz 是检查的文件)。

使用这个:

arch=spark2-hdp-yarn-archive.tar.gz
if gzip -t "$arch" &>/dev/null; then
    echo ok
else
    echo >&2 "File corrupted"
    exit 1
fi