"gzip解压失败"和"tar:从先前的错误延迟退出的错误"

7

Mac OS

我有一个名为images.tar.gz的文件,其中包含大约7000个.png图像,我需要解压缩这个文件。

但是当我使用终端进行解压缩时:

tar zxvf /Users/JourneyWoo/images_002.tar.gz

我总是遇到这个问题:

... ...   
x images/00003910_000.png
x images/00001934_002.png
x images/00002250_001.png: gzip decompression failed
tar: Error exit delayed from previous errors.

由于断开连接,我无法在此.tar.gz文件中获取整个数据集。 我还使用了chmod u+r /Users/JourneyWoo/images_002.tar.gz,但它没有起作用。

也许这个.tar.gz文件中的某个png图像有问题? 我该如何处理这个问题? 非常感谢!


听起来更像是gzip文件本身损坏了。 - molbdnilo
@molbdnilo,由于这个gzip文件包含7000张图片,而且似乎只有少数几张图片是损坏的。你有什么方法可以排除这些受损图片的影响,并使解压过程继续进行吗? - Tozz
gzip和tar不关心归档文件包含的内容。特别是,它们完全不知道“镜像”的概念。7000个二进制文件的归档大小是否合理?如果你从某个地方下载它,可能已经被截断了。 - molbdnilo
3个回答

8
问题在于Mac OS使用bsdtar。当我遇到类似问题时,我安装了gnutar(大多数Linux系统使用)。
brew install gnu-tar
gtar -ztvf archive.tar.gz

2
无关紧要。使用的任何tar都没有问题,因为许多文件已经被正确提取了。正如错误消息中明确说明的那样,问题在于gzip文件已损坏。 - Mark Adler
我想指出这对我在Mac上有效,并且我的文件没有损坏。 - scottlittle

3

该文件已损坏。您需要尝试从原始来源获取好的副本,或者如果在创建时已经损坏,您需要从图像中重新生成它。问题与 .png 文件无关。问题在于 .tar.gz 文件已损坏。

(顺便说一下,"unzip" 这个动词用错了,因为它不是一个 zip 文件。"extract" 才是正确的动词。)


谢谢您的建议! - Tozz

0
所以在Mac(Ventura)上使用tar管道失败了。确实是bsdtar。试图传输整个主目录,包括Library中的所有奇怪文件。看到了关于套接字等常见消息,但无法确定该消息可能适用于哪个文件。在传输过程中没有列出文件名。
这一直在随机位置失败。作为root用户。最终成功的是什么?cpio!它仍然对个别文件有奇怪的故障,但复制了22万个文件中除了100个文件之外的所有文件。
# cd source-directory
# find . -depth -print | cpio -pdm /destination

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接