我想提取一个名为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
答案 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
或尝试使用unp
(https://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。