gzip -t 可快速校验 gzip 文件完整性而不解压,需先用 file 命令确认文件真实类型;无输出表示通过,报错或返回值非0说明损坏;对 tar.gz 文件仅验证外层 gzip 流,内部 tar 需另用 tar -tzf 检查。

直接用 gzip -t 就能快速验证 gzip 压缩文件是否损坏,不解压、不修改原文件,只做完整性校验。
确认文件确实是 gzip 格式
有些文件虽带 .gz 后缀,但未必是 gzip 压缩的。先用 file 命令确认真实类型:
-
file archive.gz—— 正常输出类似 "archive.gz: gzip compressed data" - 若显示 "ASCII text" 或 "POSIX tar archive",说明不是 gzip 文件,不能用
gzip -t
运行 gzip -t 测试完整性
执行命令后无任何输出即表示通过;一旦报错,说明文件已损坏或不完整:
gzip -t archive.gz- 常见错误如:
gzip: archive.gz: invalid compressed data--format violated或unexpected end of file - 返回值为 0 表示正常,非 0 表示失败(可用
echo $?查看)
对 tar.gz 文件也适用
.tar.gz 本质是 gzip 压缩过的 tar 包,gzip -t 同样有效:
- 它检测的是外层 gzip 流的完整性,不关心内部 tar 结构是否合法
- 若通过,说明 gzip 层没问题;但 tar 内容仍可能损坏(需配合
tar -tzf进一步检查)
配合其他命令快速诊断
单靠 gzip -t 不够时,可组合使用:
-
head -c 100 archive.gz | hexdump -C—— 查看文件开头是否符合 gzip 魔数1f 8b -
ls -lh archive.gz—— 比对大小是否明显偏小(如 KB 级却声称是几百 MB 的包) -
tar -tzf archive.tar.gz > /dev/null—— 同时验证 gzip + tar 两层结构











