tar:アーカイブに予期しないEOFがあります。

tar:アーカイブに予期しないEOFがあります。

.tar.gzファイルを解凍しようとしましたが、次のエラーが発生しました。

gzip: stdin: unexpected end of file
tar: Unexpected EOF in archive
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now

このtar.gzファイルには、.tar解凍すると以下を生成するファイルが含まれています。

tar: Unexpected EOF in archive
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now

私は試しましたが、–ignore-zerosどちら–ignore-failed-readも動作しません。

ファイルが破損しても解凍する方法はありますか?

問題のあるファイル形式::.tar.gzUNIXシステムのGzip圧縮データ。

答え1

2つの項目を確認してください。

(1) はいファイルが不完全ですダウンロードエラーのため? wgetを使用している場合は、-cオプションを使用して再ダウンロードしてください。 (常に発生します)。

(2) .tar または .tar.gz ファイル名が存在するかどうか無効なシンボル。プロファイル名は文字と数字で構成されているため、シンプルで短くするのが最善です。 (常に発生します)。だからファイルの名前を変更してください。アーカイブ名の一部として時間/日付スタンプを持つのが便利だと思ったので、最近この質問は私を魅了しました。悪い考え!

答え2

知りません。ファイルが切り捨てられたようです。どのくらい?最初の数バイトがあれば、操作は完了です。

答え3

.tar.gzファイルが生成されたのと同じプラットフォームで解凍していますか? Solarisに付属の非GNUバージョンのtarとLinuxに付属のGNU tarなど、以前のUnixバージョンのtarとの間にはいくつかの違いがあります。 GNU tarを使用してアーカイブを解凍するには、GNU tarを使用してアーカイブを作成するのが最善です。

システムはどのようにディスク領域を探しますか?アーカイブの作成時にディスクがいっぱいですか、それとも解凍しようとしたときにディスクがいっぱいですか?

クローンジョブを使用してアーカイブを作成しましたか?出力リダイレクトがない場合、cronはSTDOUTで許可されている出力サイズの制限のため、アーカイブに奇妙な操作を実行できます。 cronでアーカイブを作成して-vwithを使用している場合は、tarSTDOUTをファイルにリダイレクトし、STDERRもファイルにリダイレクトしてみてください。役立つことを確認してください。 tar -cvf archive.tar.gz /path/ 1>archive.stdout.log 2>archive.stderr.logまたはそのようなもの。

答え4

最近この問題が発生しましたが、回避策はファイル名を変更することでした(delete _)。たとえば、間違ったファイル名で問題が発生した場合は、MAA07-0100-0100-01AAA_show_tech_output.tgz名前を変更するとMAA07-0100-0100-01AAA.tgz問題の解決に役立ちます。

関連情報