我对 gzip 文件快要疯了。
我可以使用 WinRAR 在 Windows 中解压缩该文件,但在任何 UNIX 操作系统上都无法做到这一点。
文件似乎没问题。如果我这样做
file the_name_of_the_file.gz
我得到:
the_name_of_the_file.gz: gzip compressed data, from Unix, last modified: Sun Jan 30 14:10:21 2011
但如果我这么做
gunzip -f the_name_of_the_file.gz
我总是得到:
gzip: the_name_of_the_file.gz: unexpected end of file
当我尝试使用 Ubuntu 或 MacOSX 中的 GUI 工具提取文件时,也发生了同样的问题,
有任何想法吗?
答案1
gzip
当出现“文件意外结束”而解压文件失败时,一种解决方法是使用zcat
(通常也由发行版的 gzip 包提供)。
$ zcat file.raw.gz > file.raw
答案2
您是否曾通过 ftp 以 ascii 模式将文件从 Win* 传输到 Unix?这也许可以解释这一点。文件在 Win* 和 Unix 上的大小是否相同?
答案3
我怀疑您在将文件复制到 *nix 机器时损坏了该文件。
以二进制模式通过 FTP 进行传输。
答案4
我遇到了同样的问题,就我而言,这是由于该文件是一个空gz
文件(0 字节),使用以下touch
命令创建:
$touch file.txt.gz
-rw-r--r-- 1 user user 0 2016-05-24 11:48 file.txt
当使用以下命令调用时,gzip 无法解压缩它:
$gzip -dv file.txt.gz
gzip: file.txt.gz: unexpected end of file
表示空文件的正确方法txt
是先生成文件txt
,然后压缩它,最后解压缩它:
$touch file.txt
$gzip -v file.txt
file.txt: 0.0% -- replaced with file.txt.gz
$gzip -dv file.txt.gz
file.txt.gz: 0.0% -- replaced with file.txt
我不知道这种情况是否代表您的情况,但它可能会给您一些线索或帮助别人。