我想要解压名为 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
file filename.tar.gz
命令显示如下信息:POSIX tar archive,那么这个归档文件是tar格式的,而不是GZip格式的。z
选项来解压缩tar文件。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
tar xvf filename.tar.gz
。这对我起作用了。 - Kabirfile hadoop-2.7.2.tar.gz
hadoop-2.7.2.tar.gz
是HTML文件,ASCII文本格式。
该文件不是gzip格式的原因可能是下载或其他问题导致的。
有时使用“wget”命令下载的文件会出现问题。就在10分钟前,我试图从命令屏幕向服务器安装一些东西,结果发生了同样的事情。解决方法是,我从网上将.tar.gz文件下载到我的计算机,然后通过FTP上传到服务器。之后,“tar”命令按预期工作。
在内部,tar xcvf <filename>
将调用路径环境变量中的 gzip
二进制文件来解压缩 tar
存档中的文件。有时第三方工具使用自定义的 gzip
二进制文件,这些文件与 tar
二进制文件不兼容。
因此,建议您通过运行 which gzip
命令检查您的 PATH
中的 gzip
二进制文件,并确保调用正确的 gzip
二进制文件。
你需要验证的另一种情况是,你尝试解压缩的文件不是空的并且是有效的。
在我的情况下,我没有正确地下载文件,在仔细检查后,确保我有正确的文件后,我可以轻松地解压缩它。
检查文件是否完整。如果您只下载了部分文件或存在重大问题,则可能会出现此错误消息。请检查MD5校验和。
tar.gz 是一个 gzip 文件内部的 tar 文件,因此首先您必须使用 gunzip -d filename.tar.gz
解压缩 gzip 文件,然后使用 tar
命令来解压缩它。但是,由于 gunzip
告诉您它不是 gzip 格式,您可以使用 file filename.tar.gz
命令查看它的格式,并使用适当的程序打开它。
所以,基本上看似是tar.gz
文件的实际上并不是应有的格式。可以使用Linux命令file
来确定这一点。例如,对于真正的.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正确。
file filename.tar.gz
命令可以显示文件格式(如果已安装),如果是zip格式,可以尝试使用unzip
命令或者安装一个通用的解压工具,比如unp
。 - pcegzip
文件,尽管扩展名是这样的。尝试使用unzip filename.tar.gz
和gunzip filename.tar.gz
命令并查看输出结果。 - Max Leskegunzip filename.tar.gz
时,它会显示错误信息:不是gzip格式
。 - Kabirfile filename.tar.gz
命令会显示如下信息:POSIX tar归档文件。 - Kabir