somemo's diary

プログラマ、雑記、プログラミング関係はLinkから、数式はこっちでまとめていることが多い

【Linux】Curlでファイルのダウンロード

Curlでファイルをダウンロードしてみました。

ダウンロード

以下のコマンドでダウンロードします。

curl http://~

ちなみにこれだと失敗します。curlはデフォルトで標準出力に結果を出力します。結果をファイルに保存したい場合、以下のようにします。

curl -o 保存ファイル名 http://~

リダイレクト対応

ダウンロードリンクやボタンを押下後、実際にダウンロード処理を行うURLにリダイレクトすることがあります。wgetは対応していないそうですが、curlは大丈夫なようですので試してみました。

対象は、Sorceforgeからダウンロードできるwin32svnのver.1.7.4付属のREADME.txtです。流れとしては、最初のリンクにアクセス後、ページの表示を完了します。その後、2番目のURLに自動でアクセスし、それが最後のURLにリダイレクトしてダウンロード完了になります。

  1. http://sourceforge.net/projects/win32svn/files/1.7.4/README.txt/download
  2. http://downloads.sourceforge.net/project/win32svn/1.7.4/README.txt?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fwin32svn%2Ffiles%2F1.7.4%2F&ts=1334735647&use_mirror=jaist
  3. http://jaist.dl.sourceforge.net/project/win32svn/1.7.4/README.txt

よって、2番目のURLで試します。まずはリダイレクト対応なしです。

curl -o  readme.txt http://downloads.sourceforge.net/project/win32svn/1.7.4/README.txt?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fwin32svn%2Ffiles%2F1.7.4%2F&ts=1334735647&use_mirror=jaist
[1] 29582
[2] 29583
[@localhost ~]$   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
# ここでEnter
[1]-  終了                  curl -o readme.txt http://downloads.sourceforge.net/project/win32svn/1.7.4/README.txt?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fwin32svn%2Ffiles%2F1.7.4%2F
[2]+  終了                  ts=1334735647

ダウンロードの進捗を表す数字が0のままです。次にリダイレクト対応ありです(-Lオプション)。

curl -L -o  readme.txt http://downloads.sourceforge.net/project/win32svn/1.7.4/README.txt?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fwin32svn%2Ffiles%2F1.7.4%2F&ts=1334735647&use_mirror=jaist
[1] 29578
[2] 29579
[@localhost ~]$   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
102  4083  102  4083    0     0   7384      0 --:--:-- --:--:-- --:--:--  7384
# ここでEnter
[1]-  終了                  curl -L -o readme.txt http://downloads.sourceforge.net/project/win32svn/1.7.4/README.txt?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fwin32svn%2Ffiles%2F1.7.4%2F
[2]+  終了                  ts=1334735647

無事にダウンロードできています。リダイレクトすることが確定しているときは使うかもしれないですね。