LinuxでのcURLとwget:違いは何ですか?

LinuxでのcURLとwget:違いは何ですか?

Linuxユーザーのグループに、ファイルのダウンロードに何を使用するかを尋ねると、ある人は言うでしょうwgetし、他の人は言うでしょうcURL。違いは何ですか?一方が他方より優れていますか?

それはすべて接続から始まりました

政府の研究者は、早くも1960年代にさまざまなネットワークを接続し始め、相互接続されたネットワークを生み出しました。しかし、私たちが知っているインターネットの誕生は、TCP/IPプロトコルが実装された1983年1月1日でした。それは行方不明のリンクでした。これにより、異種のコンピューターとネットワークが共通の標準を使用して通信できるようになりました。

1991年、  CERN  はワールドワイドウェブ用のソフトウェアをリリースしました。これは、数年間社内で使用されていました。このWebのビジュアルオーバーレイへの関心は、すぐに広まりました。1994年の終わりまでに、  10,000台のWebサーバーと1,000万人のユーザーがいました。

これらの2つのマイルストーン(インターネットとワールドワイドウェブ)は、接続の非常に異なる側面を表しています。しかし、それらは同じ機能の多くも共有しています。

コミュニケーションとはまさにそれを意味します。サーバーなどのリモートデバイスに接続しています。そして、あなたはそれにあなたが必要とするか欲しい何かを持っているのでそれに接続します。しかし、Linuxコマンドラインからこのリモートでホストされているリソースをローカルマシンに取得するにはどうすればよいでしょうか。

1996年に、リモートでホストされているリソースをダウンロードできる2つのユーティリティが登場しました。これはwget1月にcURL出たもので、12月に出たものです。これらは両方ともLinuxコマンドラインで機能します。どちらもリモートサーバーに接続し、両方ともデータを取得します。

しかし、Linuxが同じ仕事をするために2つ以上のツールを提供するのは通常の場合だけではありません。これらのユーティリティには、さまざまな目的とさまざまな専門分野があります。問題は、それらがどれをいつ使用するかについて混乱を引き起こすほど十分に類似していることです。

2人の外科医を考えてみましょう。おそらく、眼科医に心臓バイパス手術を行わせたくないでしょうし、心臓外科医に白内障手術を行わせたくないでしょう。はい、彼らは両方とも非常に資格のある医療専門家ですが、これは彼らがお互いを置き換えることができるという意味ではありません。

wgetとについても同じことが言えますcURL

異なる目的、異なる機能、いくつかの重複

コマンドの文字「w」はwget、その目的を示しています。その主な目的は、WebページまたはWebサイト全体をロードすることです。そのmanページでは、HTTP、HTTPS、およびFTPプロトコルを使用してインターネットからファイルをダウンロードするためのユーティリティとして説明しています。

それどころか、cURLそれは、HTTPSだけでなく、SCP、SFTP、SMSBを含む26のプロトコルで動作します。そのmanページには、サーバーとの間でデータを転送するためのツールであると書かれています。Webサイトで動作するように特別に設計されたものではありません。サポートされている多くのインターネットプロトコルのいずれかを使用してリモートサーバーと通信するように設計されています。

したがってwget、それは主にWebサイト指向cURLですが、より深いレベルで、プレーンなバニラインターネットのレベルで機能します。

wgetWebページを取得でき、Webサーバー上のディレクトリ構造全体を再帰的にナビゲートしてWebサイト全体をダウンロードできます。また、取得したページのリンクを、リモートWebサーバー上の対応するものではなく、ローカルコンピューター上のWebページを正しく指すように設定することもできます。

cURLリモートサーバーと対話できます。ファイルをダウンロードするだけでなく、それらを抽出することもできます。cURL SOCKS4およびSOCKS5プロキシ、およびプロキシへのHTTPSで動作します。GZIP、BROTLI、ZSTD形式の圧縮ファイルの自動解凍をサポートしています。cURLまた、複数の転送を並行してダウンロードすることもできます。

2つの重複は、wgetどちらもcURLWebページの取得とFTPサーバーの使用を可能にすることです。

これは大まかな指標ですが、ページの長さを確認することで、2つのツールの相対的な機能セットを把握できmanます。私たちのテストマシンでは、のマニュアルページの長さwgetは1433行です。のページmancURLなんと5296行です。

wgetの概要

これはGNUwgetプロジェクトの一部であるため、すべてのLinuxディストリビューションにプリインストールされているはずです。特に最も一般的な用途であるWebページやファイルのダウンロードには簡単に使用できます。

wgetWebページまたはリモートファイルのURLを指定してコマンドを使用するだけです。

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

結果のファイルは、選択した名前で保存されます。

-OWebサイトを検索するときは、このオプションを使用しないでください。これを行うと、抽出されたすべてのファイルが1つに追加されます。

Webサイト全体を取得するには、-m(ミラー)パラメーターとWebサイトのホームページのURLを使用します。--page-requisitesまた、Webページを正しく表示するために必要なすべてのサポートファイルもロードされていることを確認するために使用できます。この--convert-links設定は、Webサイトの外部の場所ではなく、ローカルコンピューター上の正しい宛先を指すように結果のファイル内のリンクを構成します。

cURLの概要

cURL独立したオープンソースプロジェクトです。Manjaro21とFedora36にプリインストールされていますが、Ubuntu21.04にインストールする必要があります。

これは、UbuntuにcURLをインストールするためのコマンドです。

sudo apt install curl

と同じファイルをロードwgetして同じ名前で保存するには、このコマンドを使用する必要があります。-o(exit)オプションは小文字で書かれていることに注意してくださいcURL

curl -o word-file-test.doc https://file-examples.com/wp-content/uploads/2017/02/file-sample_100kB.doc

ファイルがダウンロードされました。ダウンロード中にASCIIプログレスバーが表示されます。

FTPサーバーに接続してファイルをアップロードするには、-u(user)オプションを使用して、次のようにユーザー名とパスワードのペアを指定します。

curl -o test.png -u demo:password ftp://test.rebex.net/pub/example/KeyGenerator.png

これにより、テストFTPサーバーからファイルがダウンロードされて名前が変更されます。

これ以上ない

「何をしようとしているの?」と聞かずに「どれを使うべきか」と答えることは不可能です。

wgetを何cURLをすべきかを理解すると、彼らが競争していないことがわかります。それらは同じ要件を満たさず、同じ機能を提供しようとはしません。

WebページとWebサイトの読み込みはwget、卓越性が存在する場所です。それがあなたがしていることなら、を使用してくださいwget。他のすべての場合(ダウンロードや他の多くのプロトコルのいずれかを使用する場合など)は、を使用しますcURL

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です