如何提取filename.tar.gz文件

时间:2013-04-01 13:03:23

标签: linux file gzip tar

我想提取一个名为filename.tar.gz的存档。

使用tar -xzvf filename.tar.gz不会解压缩文件。它给出了这个错误:

gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error exit delayed from previous errors

9 个答案:

答案 0 :(得分:170)

如果file filename.tar.gz给出此消息:POSIX tar archive, 存档是tar,而不是GZip存档。

在没有z的情况下解压缩tar,仅用于gzipped(压缩):

mv filename.tar.gz filename.tar # optional
tar xvf filename.tar

或尝试使用unphttps://packages.qa.debian.org/u/unp.html)之类的通用解包器,这是一个用于解压缩各种存档格式的脚本。

确定文件类型:

$ file ~/Downloads/filename.tbz2
/User/Name/Downloads/filename.tbz2: bzip2 compressed data, block size = 400k

答案 1 :(得分:13)

据我所知,该命令是正确的,ASSUMING您的输入文件是一个有效的gzip压缩文件。你的输出说它不是。如果您从互联网上下载了该文件,则可能无法获取整个文件,请重试。

如果没有更多关于文件来源的知识,这里的任何人都无法为您提供具体的解决方案,只需进行有根据的猜测。

答案 2 :(得分:5)

有时候,使用" wget"下载的文件会发生这种情况。命令。就在10分钟前,我试图从命令屏幕向服务器安装一些东西,同样的事情发生了。作为一种解决方案,我只是将.tar.gz文件从网上下载到我的机器上,然后通过FTP将其上传到服务器。在那之后," tar"命令按预期工作。

答案 3 :(得分:4)

我有同样的错误 命令的结果:

file hadoop-2.7.2.tar.gz

hadoop-2.7.2.tar.gz: HTML document, ASCII text

由于下载或其他问题导致文件不是gzip格式的原因。

答案 4 :(得分:1)

内部tar xcvf <filename>将从gzip环境变量调用二进制PATH来解压缩tar存档中的文件。有时,第三方工具使用与gzip二进制文件不兼容的自定义tar二进制文件。 最好使用gzip检查PATH中的which gzip二进制文件,并确保调用正确的gzip二进制文件。

答案 5 :(得分:0)

tar.gz是gzip文件中的tar文件,因此首先必须用gunzip -d filename.tar.gz解压缩gzip文件,然后使用tar解压缩它。但是,由于gunzip表示它不是gzip格式,因此您可以使用file filename.tar.gz查看其格式,并使用相应的程序将其打开。

答案 6 :(得分:0)

检查以确保文件完整。如果您只部分下载文件或它有重大问题,则会出现此错误消息。检查MD5sum。

答案 7 :(得分:0)

您要验证的另一种情况是,您尝试解压缩的文件不为空且有效。

在我的情况下,仔细检查后我没有正确下载文件,我确定我拥有正确的文件,可以将其解压缩而没有任何问题。

答案 8 :(得分:0)

因此,基本上看似 tar.gz 的文件实际上并不是它应有的格式。这可以使用 file Linux 命令确定。例如,对于真正的 .tgz 文件,命令输出如下:

root@f562353fc1ab:/app# file kafka_2.13-2.8.0.tgz 
kafka_2.13-2.8.0.tgz: gzip compressed data, from FAT filesystem (MS-DOS, OS/2, NT), original size modulo 2^32 75202560

因此,您接收文件的来源没有以正确的格式发送文件。如果您从 URI 下载了所谓的 .tgz 文件,则可能是 URI 错误。就我而言,我在提取 kafka 二进制文件(.tgz 文件)时遇到了同样的问题。事实证明,wget 的 URI 不正确。至少对于 kafka,要从下载页面 (https://kafka.apache.org/downloads.html) 获取正确的下载链接,我们必须遍历到由代表二进制文件的链接突出显示的页面。进入该页面后,我们将获得下载二进制文件的确切链接。此外,在下载过程中,wget 会显示将要下载的文件的类型。它会打印类似这样的东西来指示类型。

Length: unspecified [text/html] --> URI 不正确。

Length: 71403603 (68M) [application/octet-stream] --> 正确的 URI。