curlコマンドのマニュアルページには、次のような記述があります。
curlはサポートされているプロトコル(DICT、FILE、FTP、FTPS、GOPHER、HTTP、HTTPS、IMAP、IMAPS、LDAP、LDAPS、POP3、POP3S、RTMP、RTSPなど)を使用して、 SCP、SFTP、SMB、SMBS、SMTP、SMTPS、TELNET、およびTFTP)を使用します。 このコマンドは、ユーザーの操作なしで機能するように設計されています。
基本的には、カールを使ってインターネットからコンテンツをダウンロードすることができます。 たとえば、Webアドレスをhttp://linux.about.com/cs/linux101/g/curl.htmに設定してcurlコマンドを実行した場合、リンクされたページがダウンロードされます。
デフォルトでは、出力はコマンドラインに出力されますが、ファイルを保存するファイル名を指定することもできます。 指定されたURLは、wwwなどのサイトの最上位ドメインを指すことができます。 サイトの個々のページを指すことができます。
カールを使用して、物理的なWebページ、イメージ、ドキュメント、およびファイルをダウンロードすることができます。 たとえば、Ubuntu Linuxの最新バージョンをダウンロードするには、次のコマンドを実行します:
curl -o ubuntu.iso http://releases.ubuntu.com/16.04.1/ubuntu-16.04.1-desktop-amd64.iso
私はカールやWgetを使うべきですか?
「私はカールかwgetを使うべきですか? 私が過去に何度も尋ねられた質問です。答えは、あなたが達成しようとしていることに依存しているということです。
wgetコマンドは、インターネットなどのネットワークからファイルをダウンロードするために使用されます。 wgetコマンドを使用する主な利点は、ファイルを再帰的にダウンロードするために使用できることです。 したがって、ウェブサイト全体をダウンロードしたい場合は、簡単なコマンドを使用してそれを行うことができます。 wgetコマンドは、たくさんのファイルをダウンロードするのにも適しています。
curlコマンドを使用すると、検索するURLをワイルドカードで指定できます。 したがって、「http://www.mysite.com/images/image1.jpg」と「http://www.mysite.com/images/image2.jpg」と呼ばれる有効なURLがある場合、両方をダウンロードできますcurlコマンドで指定された単一のURLを持つ画像。
wgetコマンドは、ダウンロードが失敗したときには回復できますが、curlコマンドでは失敗します。
このページのwgetとcurlコマンドに関して、缶とカノーの良いアイデアを得ることができます。 奇妙なことに、このページの相違点の1つは、QWERTYキーボードで左手だけを使ってwgetを入力できるということです。
これまでのところ、wgetの上にwgetを使用する理由はたくさんありましたが、Wgetの上にカールを使用する理由は何もありませんでした。
curlコマンドはwgetコマンドより多くのプロトコルをサポートしており、SSLのサポートも強化されています。 また、wgetよりも多くの認証方法をサポートしています。 curlコマンドは、wgetコマンド以外のプラットフォームでも動作します。
カール機能
curlコマンドを使用すると、同じコマンドラインで複数のURLを指定できます。同じサイトにURLがある場合は、そのサイトのすべてのURLが同じ接続を使用してダウンロードされます。
範囲を指定すると、同じようなパス名を持つURLを簡単にダウンロードできるようになります。
curlコマンドが使用するcurlライブラリもlibcurlと呼ばれています。 これは、Webページから情報をスクラップするために、複数のプログラミング言語やスクリプト言語で使用できます。
コンテンツのダウンロード中は、ダウンロード速度またはアップロード速度、コマンドがどれぐらいの時間を費やしていたか、そしてどれだけの時間が経過しているかがプログレスバーに表示されます。
curlコマンドは、ダウンロードとアップロードの両方で2ギガバイトを超える大容量ファイルに対して機能します。
カール機能と他のダウンロードツールを比較するこのページによれば、カールコマンドは次の機能を備えています。
- 複数のURL
- ユーザー名とパスワードのサポート
- IPv6のサポート
- 再試行に失敗しました
- URLグロビング/シーケンス
- Win32のサポート
- 大規模なファイルのサポート
- GnuTLSのサポート
- DarwinSSLのサポート
- Schannelのサポート
- Cyasslのサポート
- PolarSSLのサポート
- AxTLSのサポート
- SSLセッションID
- SSLプライベート証明書
- netrcのサポート
- Metalinkのサポート
- IDNサポート
- 帯域制限
- ハッピーアイボール
- 靴下
- TFTP
- SCPアップロード/ダウンロード
- SFTPアップロード/ダウンロード
- HTTPプロキシ
- HTTP履歴書
- HTTP範囲
- HTTPリダイレクトに従う
- HTTP投稿
- チャンクされたHTTPポスト
- HTTPプット
- Cookieのサポート
- HTTP 1.1
- HTTP 2(プレーンテキストアップグレード)
- HTTP 2(TLS ALPN)
- HTTP 2(TLS NPN)
- HTTP永続接続
- HTTPS
- HTTPダイジェスト認証
- HTTP NTLM認証
- HTTPと認証を交渉する
- HTTPマルチポストパート
- HTTP圧縮解除gzip
- FTPレジューム
- FTPの範囲
- FTPアクティブモード
- FTP SSL
- FTPアップロード
- FTP Kerberos
- FTP接続の再利用
- ゴーファー