curl した tar.gz を解凍すると gzip: invalid magic エラー
curl
でダウンロードした tar.gz ファイルを解凍するとgzip: invalid magic
エラーが出る。ブラウザなどからダウンロードすると問題ない。
エラー概要
$ curl -S -O https://sample.com/sample.tar.gz \
&& tar -xzvf ./sample.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 129 0 129 0 0 443 0 --:--:-- --:--:-- --:--:-- 443
gzip: invalid magic
tar: Child returned status 1
tar: Error is not recoverable: exiting now
「curl gzip: invalid magic」で Qiita 記事をググってもヒットしなかったので、自分のググラビリティと戒めとして。
TL; DR (今北産業)
-
gzip: invalid magic
エラー自体は「ファイルが壊れている」という意味です。 - ダウンロードしたファイルを
cat
などで開いてみてください。おそらくcurl
時に-L
オプションが抜けていたため、リダイレクトに失敗しています。 -
curl
の-L
オプションをつけるとリダイレクト先からダウンロードされるようになります。
TS; DR
ファイルが壊れているとばかり思い込んでいたのですが、curl
単体でダウンロードを試してみると妙にサイズが小さいことに気づきました。
$ curl -S -O https://github.com/tensorflow/tensorflow/archive/v1.8.0.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 129 0 129 0 0 440 0 --:--:-- --:--:-- --:--:-- 441
$ ls -la
total 8
drwxr-xr-x 3 admin staff 102 9 3 19:53 .
drwxr-xr-x 8 admin staff 272 9 3 19:53 ..
-rw-r--r-- 1 admin staff 129 9 3 19:47 v1.8.0.tar.gz
$ cat v1.8.0.tar.gz
<html><body>You are being <a href="https://codeload.github.com/tensorflow/tensorflow/tar.gz/v1.8.0">redirected</a>.</body></html>
cat
コマンドで中身を見ると、なんと「リダイレクトされてるよん」と HTML のエラーページをダウンロードしておりました!そりゃ解凍もできませんわね。
1つ1つ確認せずに、横着して一気にコマンドを実行したことが災いしました。とほほ。
- 検証環境:
- macOS Mojave(OSX 10.14.6)
- curl: v7.54.0
- tar: bsdtar v2.8.3
Author And Source
この問題について(curl した tar.gz を解凍すると gzip: invalid magic エラー), 我々は、より多くの情報をここで見つけました https://qiita.com/KEINOS/items/85293296368d266ec9fb著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .