【问题标题】:is it possible to verify if tar.gz file is corrupted [duplicate]是否可以验证 tar.gz 文件是否已损坏 [重复]
【发布时间】:2018-09-04 16:10:41
【问题描述】:

我们要检查 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 文件已损坏的预期结果是什么?

【问题讨论】:

  • file 只检查文件的前几个字节以确定格式,它不验证文件。唯一的方法是尝试解压缩它并查看是否出现错误。
  • Stack Overflow 用于编程问题,而不是关于使用或配置 Linux 及其应用程序的问题。 Super UserUnix & Linux 将是解决此类问题的更好地方。
  • tar tzvf spark2-hdp-yarn-archive.tar.gz列出目录
  • 要检查的值是什么,你的意思是像 echo $? ,如果这个差异从零开始,那么这是损坏的文件?

标签: linux shell file compression tar


【解决方案1】:

使用这个:

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

【讨论】:

  • 请避免回复off-topicfodder。相反,关闭它并继续前进。有时建议问题可能与主题相关的网站会有所帮助。
【解决方案2】:

gzip 工具允许您测试存档。你会输入一个类似的命令

gzip -t spark2-hdp-yarn-archive.tar.gz

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

gzip: blah.gz: unexpected end of file

(使用 blah.gz 被检查的文件)。

【讨论】:

  • 我们可以使用“echo $”吗?为了检查它?
  • 我们也可以做gunzip -c file.tar.gz | tar t > /dev/null ,然后检查 $?
  • 请避免回复off-topicfodder。相反,关闭它并继续前进。有时建议一个问题可能与主题相关的网站会有所帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-08
  • 1970-01-01
  • 1970-01-01
  • 2013-04-07
  • 1970-01-01
  • 2014-12-30
相关资源
最近更新 更多