これらのcurl
とwget
は両方とも、ファイルのダウンロードなどに使用されます。どちらか一方を使用する理由はありますか?
「適切な使用」を定義したら、wget
を使用します。
どうして?それが理由です:
再帰的! curlと比較したwgetの大きな強みは、再帰的にダウンロードできることです。HTMLページやFTPディレクトリリストなど、リモートリソースから参照されるすべてをダウンロードすることさえできます。
here からコピーされた恥知らず
curl
library。 curl
は、libcurl
によって強化されています。これは、誰でも使用できる安定したAPIを備えたクロスプラットフォームライブラリです。この違いは、内部的に物事を行う方法に関してまったく異なる態度を作り出すため、大きなものです。また、ライブラリを作成することは、「単なる」コマンドラインツールよりもわずかに困難です。
パイプ。 curl
は、従来のUnixのcat
コマンドと同様に機能し、stdout
により多くのものを送信し、「すべてがパイプ」方式でstdin
からより多くを読み取ります。 wget
は、cp
に似ており、同じアナログを使用します。
シングルショット。 curl
は、基本的にデータのシングルショット転送を行うために作成されます。ユーザーが指定したURLのみを転送し、再帰的なダウンロードロジックやHTMLパーサーは含まれません。
その他のプロトコル。 curl
は、FTP、FTPS、Gopher、HTTP、HTTPS、SCP、SFTP、TFTP、TELNET、DICT、LDAP、LDAPS、FILE、POP3、IMAP、SMB/CIFS、SMTP、RTMPおよびRTSPをサポートします。 Wgetは、HTTP、HTTPS、およびFTPのみをサポートします。
よりポータブルに。 curl
は、wget
よりも多くのプラットフォームでビルドおよび実行されます。たとえば、OS/400、TPF、および単純なUnixクローンではないその他の「エキゾチック」なプラットフォーム。
その他のSSLライブラリとSSLサポート。 curl
は、11種類(11!)の異なるSSL/TLSライブラリのうちの1つを使用して構築でき、プロトコルの詳細に対するより多くの制御とより広いサポートを提供します。 curl
は公開キーの固定をサポートしています。
HTTP認証。 curl
は、特にHTTPプロキシ経由で、より多くのHTTP認証方法をサポートします:Basic、Digest、NTLM、およびNegotiate
ソックス。 curl
は、プロキシアクセス用にいくつかのSOCKSプロトコルバージョンをサポートしています
双方向。 curl
は、アップロードおよび送信機能を提供します。 wget
は、プレーンHTTP POSTサポートのみを提供します。
HTTPマルチパート/フォームデータ送信。これにより、ユーザーはHTTP「アップロード」を行い、一般的にブラウザをエミュレートし、HTTPオートメーションをより広範囲に実行できます。
curl
はgzip
をサポートし、Content-Encodingを拡張し、自動解凍を行います
curl
はTransfer-Encoded HTTPの圧縮解除を提供および実行しますが、wgetは提供しません。
curl
はHTTP/2をサポートし、Happy Eyeballsを使用してデュアルスタック接続を行います
より多くの開発者のアクティビティ。これについては議論の余地がありますが、ここでは、メーリングリストのアクティビティ、ソースコードのコミット頻度、リリース頻度の3つの指標を検討します。これらの2つのプロジェクトをフォローしている人なら誰でも、curlプロジェクトのペースがこれらすべての分野ではるかに高いことがわかります。10年以上もそうです。 OpenHubで比較する
wget
wget
はコマンドラインのみです。ライブラリはありません。
再帰的! wget
のcurlと比較した場合の大きな強みは、再帰的にダウンロードできることです。HTMLページやFTPディレクトリリストなど、リモートリソースから参照されるすべてをダウンロードすることもできます。
Older。 wget
のトレースは1995年まで遡りますが、curl
は1996年の終わりまで遡って追跡できます。
GPL。 wget
は100%GPL v3です。 curlはMITライセンスです。
GNU。 wget
はGNUプロジェクトの一部であり、すべての著作権はFSFに割り当てられています。 curlプロジェクトは完全にスタンドアロンで独立しており、ダニエルが所有するほとんどすべての著作権を所有する組織はまったくありません。
wget
は、リモートURLをローカルファイルに単純にダウンロードするための追加オプションを必要としませんが、curl
は-o
または-O
を必要とします。
wget
は、cookieドメインを処理するためのPublic Suffix Listをサポートしますが、curlはサポートしません。
wget
は、SSL/TLSサポート用にGnuTLSまたはOpenSSLのみをサポートします
wget
は、HTTPプロキシを介した唯一の認証タイプとして基本認証のみをサポートします
wget
にはSOCKSサポートがありません
途中で破損した転送から回復してダウンロードを続行する機能には、curlに対応するものがありません。
wget
は、qwertyキーボードの左手を使用して入力できます!
curl
、snarf
、wget
、pavuk
、fget
、fetch
、lftp
のようなダウンロード可能なツールがたくさんありますaria2
、HTTrack
など。要件に応じて使用し、ダウンロードとともに使用する機能を選択します。 機能テーブル を確認し、それに応じて使用します。
カール:
Wget:
詳細情報の重要なリソース:
良い説明があります curl vs Wget 。
機能の表: cURL機能と他のダウンロードツールとの比較
Curlがサポートする機能の詳細: 機能-curlでできること
Wgetがサポートする機能の詳細: wget features
これらには多くの共通機能がありますが、curl
にはさらに多くのオプションがあります。 wget
の場合は、man wget
を抜けるだけで十分な場合がありますが、curl
の場合は、ブラウザで このWebページ を調べる必要があります。あなたのブラウザができることは何でも、curl
もできると信じています。
Wgetとcurlには別の違いがあり、それが重要だと思います。
Wgetは、インターネットコンテンツを迅速かつ簡単に取得することを主な目的としたスタンドアロンのコマンドラインユーティリティです。
一方、Curlは基本的に強力なlibcurlライブラリのターミナルフロントエンドです。 Libcurlは、すべてのフォームとフレーバーのURLを操作するための非常に強力なツールセットを提供し、ほぼすべての言語とプラットフォームで使用できます。 Curlは基本的に、シェルスクリプトでこのライブラリを使用する機能を提供します。