重要なポイント
wget コマンドは主に Web ページや Web サイトをダウンロードすることを目的としており、cURL と比較するとサポートするプロトコルの数は多くありません。 cURL は、Web サイトだけでなくあらゆる種類のリモート ファイル転送に使用でき、ファイル圧縮などの追加機能もサポートしています。
大勢の Linux ユーザーにファイルを何でダウンロードするのかと尋ねると、
wget
答える人もいれば、
cURL
と答える人もいます。違いは何ですか?一方は他方よりも優れていますか?
wget と cURL の歴史
政府の研究者は 1960 年代に遡ってさまざまなネットワークを接続し始め、 相互 接続された ネットワーク を生み出しました。しかし、 私たちが知っているインターネットの誕生は、 TCP/IP プロトコル が実装された 1983 年 1 月 1 日に始まりました。これがミッシングリンクでした。これにより、異なるコンピュータやネットワークが共通の標準を使用して通信できるようになりました。
1991 年、 CERN は World Wide Web ソフトウェアをリリースし、数年間社内で使用していました。インターネット用のこのビジュアル オーバーレイに対する関心はすぐに広がりました。 1994 年末までに、 Web サーバーは 10,000 台、ユーザーは 1,000 万人に なりました。
これら 2 つのマイルストーン、インターネットとウェブは、接続のまったく異なる側面を表しています。ただし、多くの同じ機能も共有しています。
接続とはまさにそのことを意味します。サーバーなどのリモート デバイスに接続しています。そして、あなたがそれに接続しているのは、そこに必要なものや欲しいものがあるからです。しかし、Linux コマンド ラインから、リモートでホストされているリソースをローカル コンピューターに取得するにはどうすればよいでしょうか?
1996 年に、リモートでホストされているリソースをダウンロードできる 2 つのユーティリティが誕生しました。 1 月にリリースされた
wget
と 12 月にリリースされた
cURL
です。どちらも Linux コマンド ラインで動作します。どちらもリモート サーバーに接続し、データを取得します。
しかし、これは Linux が同じ仕事をするために 2 つ以上のツールを提供するというよくあるケースだけではありません。これらのユーティリティにはさまざまな目的とさまざまな専門分野があります。問題は、これらはどれをいつ使用するかについて混乱を引き起こすほど似ていることです。
二人の外科医を考えてみましょう。おそらく、眼科外科医に心臓バイパス手術をしてもらいたくないでしょうし、心臓外科医に白内障手術をしてもらいたくないでしょう。確かに、彼らは両方とも高度な技術を持った医療専門家ですが、それは彼らがお互いの代替品であるという意味ではありません。
wget
と
cURL
にも同じことが当てはまります。
wgetとcURLの比較
wget
コマンドの「w」は、その意図された目的を示します。その主な目的は、Web ページ、または Web サイト全体をダウンロードすることです。その
man
ページでは、HTTP、 HTTPS 、および FTP プロトコルを使用して Web からファイルをダウンロードするユーティリティとして説明されています。
対照的に、
cURL
HTTPS だけでなく SCP、
SFTP
、SMSB を含む 26 のプロトコルで動作します。その
man
ページには、サーバーとの間でデータを転送するためのツールであると記載されています。特にウェブサイトで動作するように調整されていません。これは、サポートされている多くのインターネット プロトコルのいずれかを使用して、リモート サーバーと対話することを目的としています。
したがって、
wget
主に Web サイト中心ですが、
cURL
より深いレベル、つまり普通のインターネット レベルで動作するものです。
wget
は Web ページを取得でき、Web サーバー上のディレクトリ構造全体を再帰的にナビゲートして Web サイト全体をダウンロードできます。また、取得したページ内のリンクを調整して、リモート Web サーバー上の対応する Web ページではなく、ローカル コンピュータ上の Web ページを正しく指すようにすることもできます。
cURL
すると、リモート サーバーと対話できます。ファイルをアップロードすることも、取得することもできます。
cURL
SOCKS4 および SOCKS5 プロキシ、およびプロキシへの HTTPS で動作します。 GZIP、BROTLI、ZSTD 形式の
圧縮ファイル
の自動解凍をサポートします。
cURL
すると、複数の転送を並行してダウンロードすることもできます。
これらの重複点は、
wget
と
cURL
両方で Web ページを取得し、FTP サーバーを使用できることです。
これは大まかな指標にすぎませんが、ツールの長さを確認することで、2 つのツールの相対的な機能セットをある程度理解することができます。
man
ページ。私たちのテスト マシンでは、
wget
のマニュアル ページの長さは 1433 行です。の
man
cURL
のページはなんと 5296 行あります。
wget の概要
wget
GNU プロジェクト
の一部であるため、すべての Linux ディストリビューションにプレインストールされているはずです。特に最も一般的な用途である Web ページやファイルのダウンロードの場合、使い方は簡単です。
Web ページまたはリモート ファイルへの URL を指定して
wget
コマンドを使用するだけです。
wget https://file-examples.com/wp-content/uploads/2017/02/file-sample_100kB.doc
ファイルが取得され、元の名前でコンピュータに保存されます。
ファイルを新しい名前で保存するには、
-O
(出力ドキュメント) オプションを使用します。
wget -O word-file-test.doc https://file-examples.com/wp-content/uploads/2017/02/file-sample_100kB.doc
取得したファイルは、選択した名前で保存されます。
Web サイトを取得する場合は、
-O
オプションを使用しないでください。そうすると、取得したすべてのファイルが 1 つに追加されます。
Web サイト全体を取得するには、
-m
(ミラー) オプションと Web サイトのホームページの URL を使用します。また、
--page-requisites
を使用して、Web ページを適切にレンダリングするために必要なすべてのサポート ファイルもダウンロードされるようにすることもできます。
--convert-links
オプションは、Web サイトの外部の場所ではなく、ローカル コンピューター上の正しい宛先を指すように、取得したファイル内のリンクを調整します。
cURL の概要
cURL
は、独立したオープンソース プロジェクトです。 Manjaro 21 と Fedora 36 にはプレインストールされていますが、Ubuntu 21.04 にはインストールする必要がありました。
これは、Ubuntu に
cURL
をインストールするコマンドです。
Sudo apt installカール
wget
で行ったのと同じファイルをダウンロードし、同じ名前で保存するには、このコマンドを使用する必要があります。
-o
(出力) オプションは
cURL
では小文字であることに注意してください。
curl -o word-file-test.doc https://file-examples.com/wp-content/uploads/2017/02/file-sample_100kB.doc
ファイルがダウンロードされます。ダウンロード中に ASCII 進行状況バーが表示されます。
FTP サーバーに接続してファイルをダウンロードするには、
-u
(ユーザー) オプションを使用し、次のようにユーザー名とパスワードのペアを指定します。
カール -o test.png -u デモ:パスワード ftp://test.rebex.net/pub/example/KeyGenerator.png
これにより、テスト FTP サーバーからファイルがダウンロードされ、名前が変更されます。
ベストなんてない
「何をしようとしているのか?」を尋ねずに「どれを使用するべきか」に答えることは不可能です。
wget
と
cURL
機能を理解すると、これらが競合関係にないことがわかるでしょう。それらは同じ要件を満たしておらず、同じ機能を提供しようとしていません。
Web ページや Web サイトのダウンロードは、
wget
の優位性です。それを行う場合は、
wget
使用してください。それ以外の場合、たとえばアップロードや他の多数のプロトコルの使用などには、
cURL
使用します。





