curlとwgetの違いは何ですか?[閉まっている]


38

これらの両方curlwgetなど、ファイルをダウンロードするために使用されている他の上で1つを使用する理由はありますか?


1
「適切な使用」を定義します
AB

12
意見に基づく投票の締め切りについて:2つのツールの違いについて質問すると、意見に基づく回答がどのように促進されますか?
マイケル・マーティン・スマッカー

1
@ MichaelMartin-Smucker「Webページをダウンロードする必要がある場合、www.google.comと言うことができます。wgetまたはcurlを探す必要がありますか?」意見に基づかない場合、それは何ですか?
ムル

2
@muru、「Webページのダウンロード」の意味によって異なります。HTTPリクエストを送信して結果を返送する場合は、curlが理想的です。ページ、それがリンクしている他のページ、および関連するアセットをダウンロードすることを意味する場合、curlは機能せず、wgetが唯一のオプションです。それらの間には事実に基づいた違いがあり、これは意見に基づいたものではありません。
バーベキュー

3
@muru私たちは質問の背後にある感情について異なる解釈をしているだけだと思います。私の解釈では、感情は「同じことをしているように見えるこれらの2つのツールを聞いたことがあります。それらの違いは何ですか。...それは私にとって合理的な質問のようです。
マイケル・マーティン・スマッカー

回答:


33

「適切な使用」を定義したら、を使用しますwget

どうして?それが理由です:

再帰的!curlと比較したwgetの大きな強みは、再帰的にダウンロードできること、またはHTMLページやFTPディレクトリリストなど、リモートリソースから参照されているものすべてをダウンロードすることです。


ここからコピーされ恥知らず

curl

  • ライブラリcurlを搭載libcurl–誰でも使用できる安定したAPIを備えたクロスプラットフォームライブラリ。この違いは、内部的に物事を行う方法に関してまったく異なる態度を作り出すため、大きなものです。また、ライブラリを作成するのは、「単なる」コマンドラインツールよりも少し難しいです。

  • パイプcurl従来のUnix catコマンドと同様に機能し、より多くのものをに送信し、「すべてがパイプ」方式でstdoutより多くのデータを読み取りstdinます。同じアナログを使用して、wgetより似cpています。

  • シングルショットcurl基本的に、データのシングルショット転送を行うために作られています。ユーザーが指定したURLのみを転送し、再帰的なダウンロードロジックやHTMLパーサーは含まれません。

  • より多くのプロトコルcurlFTP、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サポートcurl11(11!)種類のSSL / TLSライブラリのうちの1つを使用して構築でき、プロトコルの詳細に対するより多くの制御と幅広いサポートを提供します。curl公開鍵のピン留めをサポートします。

  • HTTP認証curl特にHTTPプロキシ経由で、より多くのHTTP認証方法をサポートします:Basic、Digest、NTLM、およびNegotiate

  • SOCKScurlプロキシアクセス用にいくつかのSOCKSプロトコルバージョンをサポート

  • 双方向curlアップロードおよび送信機能を提供します。wget単純なHTTP POSTサポートのみを提供します。

  • HTTP multipart / form-dataの送信。これにより、ユーザーはHTTPの「アップロード」を行い、一般的にブラウザーをエミュレートし、HTTPオートメーションをより広範囲に実行できます。

  • curlgzipContent-Encodingをサポートおよび拡張し、自動解凍を行います

  • curl Transfer-Encoded HTTPの圧縮解除を提供および実行しますが、wgetは提供しません。

  • curl HTTP / 2をサポートし、Happy Eyeballsを使用してデュアルスタック接続を行います

  • より多くの開発者の活動。これについては議論できますが、ここでは、メーリングリストのアクティビティ、ソースコードのコミット頻度、リリース頻度の3つの指標を検討します。これらの2つのプロジェクトをフォローしている人なら誰でも、curlプロジェクトはこれらすべての分野でずっと速いペースで進んでおり、10年以上もそうであることがわかります。OpenHubで比較する


wget

  • wgetコマンドラインのみです。ライブラリはありません。

  • 再帰的wgetcurlと比較した場合の主な強みは、再帰的にダウンロードできることです。HTMLページやFTPディレクトリリストなど、リモートリソースから参照されるすべてのものをダウンロードすることさえできます。

  • 古いです。wget1995年までさかのぼるcurlことができますが、1996年末までにさかのぼることができます。

  • GPLwget100%GPL v3です。curlはMITライセンスです。

  • GNUwgetGNUプロジェクトの一部であり、すべての著作権はFSFに割り当てられています。curlプロジェクトは完全にスタンドアロンで独立しており、ダニエルが所有するほぼすべての著作権を所有する組織はまったくありません。

  • wgetまたはをcurl必要とする一方で、単にリモートURLをローカルファイルにダウンロードするための追加オプションは必要ありません。-o-O

  • wget Cookieドメインを処理するためのPublic Suffix Listをサポートしていますが、curlはサポートしていません。

  • wget SSL / TLSサポート用にGnuTLSまたはOpenSSLのみをサポート

  • wget HTTPプロキシ経由の唯一の認証タイプとして基本認証のみをサポート

  • wget SOCKSのサポートはありません

  • 途中で壊れた転送から回復してダウンロードを続行する機能には、curlに対応するものがありません。

  • wget qwertyキーボードの左手のみを使用して入力できます!


1
はい、wgetはミラーリングに最適です!
joeytwiddle

1
「curlプロジェクトは完全にスタンドアロンで独立しており、ダニエルが所有するほとんどすべての著作権を所有する組織はまったくありません。」それが悪いことかどうかわからない
バーベキュー

「早すぎる破損した転送から回復し、ダウンロードを続行する機能には、curlに対応するものがありません。」私はこの文を間違って理解しましたか?curl -C -壊れたダウンロードを継続していませんか?
Siyuanレン

1
なぜwgetをお勧めしますか?自分で書いた比較を見た後でも、カールははるかに優れているように聞こえます。wget can be typed in using only the left hand on a qwerty keyboard!WTF ?? wget requires no extra options to simply download a remote URL to a local file, while curl requires -o or -O.
アンモルシンジャギ

2
サイズも重要です:新しいUbuntuイメージでは、wgetサイズは2M対curl 5Mパック(深さ、x3合計アンパック)
エランW

19

以下のようにダウンロードすることができ、多くのツールがありますcurlsnarfwgetpavukfgetfetchlftparia2HTTrackそれはあなたの条件に応じて、あなたがダウンロードと一緒に使用したい特色などを使用。機能テーブル を確認し、それに応じて使用します。

カール:

  • Curlは、より多くのプロトコルFTP、FTPS、HTTP、HTTPS、SCP、SFTP、TFTP、TELNET、DICT、LDAP、LDAPS、FILE、POP3、IMAP、SMTP、RTMPおよびRTSPをサポートします
  • Curlはより多くのSSLライブラリをサポートします
  • Curlは、特にHTTPプロキシ経由で、より多くのHTTP認証方法をサポートします:Basic、Digest、NTLM、およびNegotiate
  • Curlはlibcurlによって強化されています-誰でも使用できる安定したAPIを備えたクロスプラットフォームライブラリ

Wget:

  • wgetはHTTP、HTTPS、およびFTPをサポートしますが
  • WgetはSSL / TLSサポート用にGnuTLSまたはOpenSSLのみをサポートします
  • Wgetは、HTTPプロキシ経由の唯一の認証タイプとして基本認証のみをサポートします
  • Wgetはコマンドラインツールのみであり、ライブラリはありません。

詳細については重要なリソース:


「wgetは、ライブラリを知っているだけのコマンドラインツールです。」私はその行を理解していません。
ルシオ

3

それらには共通の多くの機能がcurlありますが、より多くのオプションがあります。以下のためにwget、それは時折を通じて葉に十分であるかもしれないman wgetが、ためにcurl私は勉強する必要があり、このWebページをブラウザで。私はあなたのブラウザができることは何でもできると信じていますcurl


2

wgetとcurlには別の違いがあり、それが重要だと思います。

Wgetは、インターネットコンテンツを迅速かつ簡単に取得することを主な目的としたスタンドアロンのコマンドラインユーティリティです。

一方、Curlは基本的に強力なlibcurlライブラリのターミナルフロントエンドです。Libcurlは、すべてのフォームとフレーバーのURLを操作するための非常に強力なツールセットを提供し、ほぼすべての言語とプラットフォームで使用できます。Curlは基本的に、シェルスクリプトでこのライブラリを使用する機能を提供します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.