回答:
すべてのtar.gz
ファイルで発生するか、これだけで発生するかによって異なります。この特定のファイルは破損している可能性があるため、適切に開くことができません。tarを使用して抽出z
する場合は、アーカイブをgzipで圧縮するときに必要になるオプションを使用する必要がありますtar xzvf <file.tar.gz>
。または、それを使って抽出することも試してみる価値がありますgunzip <file.tar.gz>
ファイルが破損しているかどうかを確認するには、を実行しgzip -t <file.tar.gz>
ます。このコマンドはファイルのエラーをチェックし、エラーが見つかった場合はターミナルに表示されます。これにより、ファイルが破損しているかどうかがわかります。
ファイルが正常でエラーが再発する場合はzero blocks
、GNU tarが予想するように、ファイルの末尾にペアがない場合に発生するtarの既知の問題である可能性があります。これに対する解決策は、-i
を無視するオプションを追加することzero blocks
です。したがってtar ixzvf <file.tar.gz>
、問題はここに詳細に文書化されています。
stderrとstdoutを分離しないチャネル(android adb端末セッション)を介してstdout と stderrの両方をパイプ処理したため、同じことが私にも起こりました。
こうすることで、いくつかのエラーメッセージがストリームに入れられました。これは誤ったコマンドでした:
誤ったコマンド、adbシェルはstderrとstdoutをローカルにマージするだけです=>ゴミ!:
adb shell tar -cf - /some/dir \| uuencode bla | uudecode -o - > backup.tar
修正されたコマンド:
adb shell tar -cf - /some/dir 2>/dev/null\| uuencode bla | uudecode -o - > backup.tar
stderrを/ dev / nullにリダイレクトするのを忘れた場合に、sshを介して次のクイックtarストリーミングのようなSSHを介して同様のコマンドを実行すると、同じことが起こります。
ssh user@host tar -czf /some/remote/path 2\>/dev/null > /local/path/to/file.tar.gz
RequestTTY yes
します。で明示的に無効にすることができます-T Disable pseudo-tty allocation.
私にとって、エラーはtar: Skipping to next header
もともと、--posix
..