はじめに
ダウンロードによく使われる UNIX 系のコマンドとして Wget があります.当然,Mac にも入っていると思ったのですが,OS X 10.1 以降には Wget は標準装備されていません.同じような機能を持つ curl コマンドが代わりに入っています.
Web を色々調べてみると wget と curl はそれぞれ特徴があり,完全に代替できるわけではないようです.
curl vs Wget に2つのコマンドの説明と比較があります.以下の内容は上記サイトからの情報を日本語訳しました.正確な訳ではありません.
共通する項目
- FTP, HTTP, HTTPSのプロトコルを使ったコンテンツダウンロード用のコマンドラインツールです.
- スクリプトの中で使われるように,ユーザとの対話なしに動作するように設計されています.
- 完全なオープンソースであり,フリーソフトウェアです,
- 開発プロジェクトは 90 年代にスタートしました.
curlの特徴
- curl の機能は,誰でも利用することができる libcurl というクロスプラットフォームのライブラリの API によって提供されています.
- パイプスタイルです.curl は Wget と比べてより伝統的な Unix スタイルのコマンドです.それは標準出力により多くのものを出力し,標準入力からより多くのものを読み取る「全てパイプである」スタイルです.
- コードを返却します.curl は様々な(エラー)状態のための定義済みで文書化されたコードの範囲を返します.
- シングルショット.curl は一発のデータ変換が基本モードです.ユーザが指定した URL を転送する再帰的なダウンロードや HTML パーサの任意の並び替えは含まれていません.
- 多くのプロトコルをサポートしています. curl は FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FILE, POP3, IMAP, SMTP, RTMP and RTSP をサポートしています.Wget はHTTP, HTTPS, FTPをサポートしています.
- より移植性が高いです. curl は Wget より多くのプラットフォーム上でビルドされ,実行されています.
- より多くの SSL ライブラリと広範囲の SSL サポートがあります.curl は7つの異なる SSL/TLS ライブラリを組み込んでビルドすることができます.
- curl はより多くの HTTP 認証方法(HTTP proxy など)をサポートしています.
- 双方向性.curl はアップロードと送信の機能を提供します.Wget はHTTP POST のサポートだけを提供します.
- HTTP マルチパート /from-data 送信を行います.一般的なブラウザをエミュレートして,より広い範囲に HTTP オートメーションすることができます.
- 圧縮.curl は gzip と Content-Encoding によるエンコードと自動圧縮をサポートしています.
Wget
- Wget はコマンドラインだけで利用出来るツールです.
- 再帰的です.Wget が curl と比べて特に優れている機能は再帰的にダウンロードすることができることです,HTML ならあるページからたどれるリンクを,FTP ならディレクトリリストをたどって全てをダウンロードします.
- 古い.Wget は 1995 年から情報をたどることができます,一方,curl は1997年より前の情報をたどることは簡単ではありません.
- 開発者の活動は少ないです.メーリングリストの投稿数,ソースコードのコミット頻度,リリース頻度から計測すると curl の方がよいペースです.
- HTTP 1.0です.Wget はまだ HTTP 1.0 のオペレーションを使っている.curl は 2001 年 3 月から HTTP 1.1 を使っています.
- GPL.Wget のラインセンスはGPL v3です.curl はMIT ライセンスです.
- GNU.Wget は GNU project の一部で,全ての著作権は Free Software Foundation に譲渡されています.curl は完全に単独で組織から独立したDaniel 氏に著作権があります.
- 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/
コメントを残す