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


16

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

何か案は?


それはまったく同じファイルですか(つまり、フラッシュドライブ上にあり、2つのオペレーティングシステムから開いています)、それとも個別にダウンロードしていますか?後者の場合、すべてのデータを含まない不完全なダウンロード(別名、破損)が発生する可能性があります。
Freesnöw

1
fileコマンドは、ファイルのすべてをチェックしません。ヘッダー内の数バイトを見るだけで、gzエンコードされたファイルであることがわかります。

最初にUnixで試し、後でWindowsで試したため、破損していません。
cues7a

gzipファイルを作成しましたか?その場合、gzipファイルの作成に使用したオペレーティングシステムとアプリケーションは何ですか?

回答:


5

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

$ zcat file.raw.gz > file.raw


2

偶然、asciiモードでftpを介してWin *からUnixにファイルを転送しましたか?それで説明できるかもしれません。ファイルはWin *とUnixで同じサイズですか?


私は最初にWindowsでファイルを解凍し、後でUnixでファイルを解凍しようとしました。
cues7a

1

* nixマシンにファイルをコピーするときに、ファイルが破損していると思われます。

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


UNIXおよびそれ以降のWindowsで拳を銃で圧縮しようとしたため、ファイルは破損していないと思います。
cues7a

1
あなたが言っていることは意味がありません。ファイルのコピーを作成する必要がなかった場合は、そう言ってください。行った場合、コピープロセス(FTP?)が間違っている可能性があります。
ロビングリーン

USBペンドライブ経由でファイルを転送しました。最初にUNIXで試してみましたが機能しませんでしたが、次にWindowsで試してみました。
-cues7a

1

POSIXシステム用の7za.exeのポートであるユーティリティP7zipを使用して問題を解決しました。


それで、あなたはアーカイブされたファイルがレガシーのUnixツールによって認識されない圧縮方法を使用したと言っているのですか?

0

WinRarでのいくつかの経験に基づいて、私の最初の推測は、gzipが(正しく)エラーを与えているのに、エラーを与えることなく不完全または破損したファイルを抽出しているということです

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

どのバージョンがgzip -V発表されますか?

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


gzip -V:gzip 1.3.12、gzip -t the_name_of_the_file->予期しないEOF
cues7a

0

私は同じ問題を抱えていましたが、私の場合は、ファイルが空の(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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.