ssaito

3月 3, 2012

ダウンロードコマンド Wgetとcurl

Filed under: Tips — タグ: — ssaito @ 11:34 am

はじめに

ダウンロードによく使われる UNIX 系のコマンドとして Wget があります.当然,Mac にも入っていると思ったのですが,OS X 10.1 以降には Wget は標準装備されていません.同じような機能を持つ curl コマンドが代わりに入っています.

Web を色々調べてみると wget と curl はそれぞれ特徴があり,完全に代替できるわけではないようです.

curl vs Wget に2つのコマンドの説明と比較があります.以下の内容は上記サイトからの情報を日本語訳しました.正確な訳ではありません.

共通する項目

  • FTP, HTTP, HTTPSのプロトコルを使ったコンテンツダウンロード用のコマンドラインツールです.
  • スクリプトの中で使われるように,ユーザとの対話なしに動作するように設計されています.
  • 完全なオープンソースであり,フリーソフトウェアです,
  • 開発プロジェクトは 90 年代にスタートしました.

curlの特徴

  1. curl の機能は,誰でも利用することができる libcurl というクロスプラットフォームのライブラリの API によって提供されています.
  2. パイプスタイルです.curl は Wget と比べてより伝統的な Unix スタイルのコマンドです.それは標準出力により多くのものを出力し,標準入力からより多くのものを読み取る「全てパイプである」スタイルです.
  3. コードを返却します.curl は様々な(エラー)状態のための定義済みで文書化されたコードの範囲を返します.
  4. シングルショット.curl は一発のデータ変換が基本モードです.ユーザが指定した URL を転送する再帰的なダウンロードや HTML パーサの任意の並び替えは含まれていません.
  5. 多くのプロトコルをサポートしています. curl は FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FILE, POP3, IMAP, SMTP, RTMP and RTSP をサポートしています.Wget はHTTP, HTTPS, FTPをサポートしています.
  6. より移植性が高いです. curl は Wget より多くのプラットフォーム上でビルドされ,実行されています.
  7. より多くの SSL ライブラリと広範囲の SSL サポートがあります.curl は7つの異なる SSL/TLS ライブラリを組み込んでビルドすることができます.
  8. curl はより多くの HTTP 認証方法(HTTP proxy など)をサポートしています.
  9. 双方向性.curl はアップロードと送信の機能を提供します.Wget はHTTP POST のサポートだけを提供します.
  10. HTTP マルチパート /from-data  送信を行います.一般的なブラウザをエミュレートして,より広い範囲に HTTP オートメーションすることができます.
  11. 圧縮.curl は gzip と Content-Encoding によるエンコードと自動圧縮をサポートしています.

Wget

  1. Wget はコマンドラインだけで利用出来るツールです.
  2. 再帰的です.Wget が curl と比べて特に優れている機能は再帰的にダウンロードすることができることです,HTML ならあるページからたどれるリンクを,FTP ならディレクトリリストをたどって全てをダウンロードします.
  3. 古い.Wget は 1995 年から情報をたどることができます,一方,curl は1997年より前の情報をたどることは簡単ではありません.
  4. 開発者の活動は少ないです.メーリングリストの投稿数,ソースコードのコミット頻度,リリース頻度から計測すると curl の方がよいペースです.
  5. HTTP 1.0です.Wget はまだ HTTP 1.0 のオペレーションを使っている.curl は 2001 年 3 月から HTTP 1.1 を使っています.
  6. GPL.Wget のラインセンスはGPL v3です.curl はMIT ライセンスです.
  7. GNU.Wget は GNU project の一部で,全ての著作権は Free Software Foundation に譲渡されています.curl は完全に単独で組織から独立したDaniel 氏に著作権があります.
  8. Wget は単純な追加のオプションが必要ありません.一方,curl には -o または -O オプションが必要になります.人々が自分たちが,なぜ Wget でダウンロードするのかを好むかを説明するとき,この事実がよく語られます.

使用例

curl

# サイトを標準出力
$ curl http://www.sample.com/
# ファイルをダウンロード
$ wget -o http://www.sample.com/sample.zip

Wget

# zipファイルをダウンロード
$ wget -r http://www.sample.com/sample.zip
# サイトをまるごとダウンロード
$ wget -r http://www.sample.com/

コメントする »

まだコメントはありません。

RSS feed for comments on this post. TrackBack URI

コメントを残す

WordPress.com で無料サイトやブログを作成.