curl

URLへの通信を行います。

curl [options] [URL...]

説明

curlはサーバからサーバへ、プロトコル(HTTP、HTTPS、FTP、FTPS、GOPHER、DICT、TELNET、LDAP、FILE)のいずれかを使用して、 データを転送するためのツールです。 このコマンドは、UI無しで動作することを念頭に設計されています。

curlは、proxyサポート、ユーザー認証、FTPアップロード、HTTPのPOST、SSL(https:)接続、Cookie、ファイル転送、再開等、 数多くの便利な機能を提供します。 後述する提供される機能の一覧を確認してみてください。

curlの全ての転送に関わる機能はlibcurlによって供給されます。 詳細については、libcurl(3)を確認してください。

URL

URLの文法はプロトコルに依存します。 詳細については、RFC3986に説明されています。

下記のように中括弧{}内に書くことで、 複数のURLまたはURLの一部を指定することが可能です。

http://site.{one,two,three}.com

また、下記のように[]を使用することで、 英数字を一続きにして一括で指定することが可能です。

ftp://ftp.numericals.com/file[1-100].txt
ftp://ftp.numericals.com/file[001-100].txt (0詰め)
ftp://ftp.letters.com/file[a-z].txt

入れ子はサポートされていませんが、幾つかのものを隣同士にして、 それぞれ組み合わせて使用することは可能です。

http://any.org/archive[1996-1999]/vol[1-4]/part{a,b,c}.html

コマンドライン上で、幾つものURLを指定することが可能です。 これらは指定された順に沿って処理が行われます。 curl 7.15.1からは、範囲のためのステップカウンターが使用可能となり、 N番目の数字または文字を指定することが出来ます。

http://www.numericals.com/file[1-100:10].txt
http://www.letters.com/file[a-z:2].txt

[]または{}を使用する際に、コマンドラインのプロンプト上から実行する場合、 シェル実行の妨げにならないように、おそらくURL全体をダブルクォートで囲う必要があるでしょう。 これは'&'、'?'、'*'のような、特別に扱われる文字に対しても同様です。

protocol://の接頭辞無しでURLを指定すると、curlはあなたが欲しているであろうプロトコルの推測を試みます。 デフォルトはHTTPですが、よく使用されるホスト名の接頭辞を基に、別のプロトコルを試します。 例えばホスト名の開始が"ftp."の場合、curlはFTP通信を必要としているだろうとみなします。

curlはURLとして渡したものを使用するために最善を尽くしてくれます。 構文として正しいURLであるとして、決して検証が試みられることは無く、 どんなものでも広く受け入れられます。

curlは複数ファイルの通信に対して、接続の再利用を試みるため、 多くのファイルを同じサーバーから取得する際には、複数の接続/ハンドシェイクは行われません。 これは速度の向上につながります。 もちろん、1行のコマンドライン上でファイル指定が行われた場合のみであり、 別々のcurlの実行においてはこれを行うことは出来ません。

進捗メーター

curlは通常、処理中に転送データ量、転送スピード、推定経過時間等を示す進捗メーターを表示します。

ただし、curlはデフォルトでターミナルにこのデータを表示するため、 However, since curl displays this data to the terminal by default, if you invoke curl to do an operation and it is about to write data to the terminal, it disables the progress meter as otherwise it would mess up the output mixing progress meter and response data.

 Back to top

© 2010 - 2017 STUDIO KINGDOM