web-dev-qa-db-ja.com

予期しないファイルの末尾。 Gzip圧縮ファイル

私は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ツールを使用してファイルを抽出しようとすると、同じ問題が発生します。

何か案は?

16
cues7a

「予期しないファイルの終わり」でgzipが失敗した場合のファイルの圧縮解除の回避策は、zcatを使用することです(これも通常、ディストリビューションのgzipパッケージによって提供されます)。

$ zcat file.raw.gz > file.raw

5
gangelop

たまたま、ファイルをWin *からUnixにFTP経由でASCIIモードで転送しましたか?それはそれを説明するかもしれません。 Win *とUnixでファイルのサイズは同じですか?

2
Heiko Rupp

ユーティリティ P7Zip を使用して問題を解決しました。これは、POSIXシステム用の7za.exeのポートです。

1
cues7a

* nixマシンにコピーするときに、ファイルが破損しているのではないかと思います。

バイナリモードでFTPします。

1
Brian Roach

私も同じ問題を抱えていましたが、私の場合は、ファイルが空(0バイト)のgzファイルであり、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

このシナリオがあなたのケースを表しているかどうかはわかりませんが、それはあなたにいくつかの手掛かりを与えたり、他の誰かを助けるかもしれません。

0

WinRarのいくつかの経験に基づいて、私の最初の推測は、不完全または破損したファイルをエラーを出さずに抽出している一方で、gzipは(正しく)エラー。

7Zip はファイルをどのように構成しますか?

gzip -Vはどのバージョンを発表しますか?

gzip -t the_name_of_the_file.gzは何を伝えますか? (おそらく同じ予期しないEOFですが、試してみる価値があります)

0
Jason Sherman