スキップしてメイン コンテンツに移動

curl の基本的な使い方 -コマンド編-

先日、wgetとcurlのお互いの優位性についてのエントリーをしましたが、その後、curlへの興味は常に持っていました。
扱えるプロトコルやコマンドの特徴は、wgetとは違う側面があるので、今回はcurlに焦点を当ててみます。




curlは、curlを呼び出した後に、URLを記述するだけで指定したURLのデータを取得します。
curl http://www.google.co.jp

取得したデータは、標準出力へ送られます。つまり、上の例では、HTMLが表示されます。これをファイルにしたい場合には、選択できるオプションが2つあります。
curl -o /path/to/file.html http://www.google.co.jp
curl -O http://www.google.co.jp
「-o」オプションは、保存するファイル名を指定して保存します。
「-O」オプションは、URLのまま保存します。上の例では、ファイル名がないので、保存されません。これには注意してください。

早速、実用的な利用方法ですが、連番形式で保存された画像(をゴッソリ欲しがるなんてアレしかない)を取得する方法ですが、下のコマンドでどうでしょうか。
cd /path/to/img
curl -O http://example.com/image/xxx_img[000-199].jpg
これで /path/to/img ディレクトリに、xxx_img000.jpg から xxx_img199.jpg までの連番形式でネーミングされたJPEG画像がダウンロードされます。

連番形式なんだけど、お気に入りの画像は数枚しかない・・・なんていう場合もあるでしょう。お任せください。
cd /path/to/img
curl -O http://example.com/image/xxx_img{004,100,150}.jpg
上のコマンドは、 /path/to/img ディレクトリに xxx_img004.jpg、xxx_img100.jpg、xxx_img150.jpg の3ファイルのみをダウンロードします。

上記の両方を合わせて使うこともできます
cd /path/to/img
curl -O http://example.com/image/user[001-005]/xxx_img{004,100,150}.jpg
この場合にダウンロードされるファイルのURLは以下のとおりです。
http://example.com/image/user001/xxx_img004.jpg
http://example.com/image/user001/xxx_img100.jpg
http://example.com/image/user001/xxx_img150.jpg

http://example.com/image/user002/xxx_img004.jpg
http://example.com/image/user002/xxx_img100.jpg
http://example.com/image/user002/xxx_img150.jpg

http://example.com/image/user003/xxx_img004.jpg
http://example.com/image/user003/xxx_img100.jpg
http://example.com/image/user003/xxx_img150.jpg

http://example.com/image/user004/xxx_img004.jpg
http://example.com/image/user004/xxx_img100.jpg
http://example.com/image/user004/xxx_img150.jpg

http://example.com/image/user005/xxx_img004.jpg
http://example.com/image/user005/xxx_img100.jpg
http://example.com/image/user005/xxx_img150.jpg
以上の15パターンになります。2次元配列をforeach でネストしたような感覚ですね。

ちなみに、こういうのもOK。
cd /path/to/img
curl -O http://example.com/image/xxx_img[a-z].jpg
a-z までのファイルをダウンロードします。
[a-z] のような表記を見ると、[a-Z] みたいにしたくないですか? あ、私だけですか。ちなみに [a-Z] はエラーです。

今回は、「-o」「-O」オプションと「[]」「{}」の利用法についてエントリーしました。

see also
wget vs curl - コマンドラインダウンロードツール頂上決戦
curl の基本的な使い方 -コマンド編- その2
curl の基本的な使い方 -設定編-


コメント

このブログの人気の投稿

[VB.NET]オレオレ証明書でSSL通信するための短絡的な解決法

VB.NETソフトウェアでサーバーと通信することはよくある事だと思いますが、最近はHTTPを使って明けっ広げに刺しに行くよりHTTPSを使って暗号化してこそこそやった方が時代の流れに即した感じですよね(違うか)。 いちいちテスト環境でSSL証明書を用意するのも面倒だということで、セキュリティ的には全くよろしくない方法で迂回できるので紹介します。

[JS]Canvasでよく使う描画テクまとめ

HTMLで画像をいじくりたい時は、canvasを利用して編集するのは一般的ですが、WindowsストアアプリではHTML+CSS+JSでのアプリ開発ができる事もあって、簡単な画像編集であれば、C#やVBを使うより分かりやすいし資料が多く、C++でDirectXをガリガリ書くよりお手軽。入出力もファイルピッカーを使えば簡単に実装できます。今回は、Windowsのコードではなく、Canvasを利用する時のJavaScriptを使いどきに合わせてまとめていきます。

curl の基本的な使い方 -設定編-

今回のcurl TIPSは、curlをより日常的に使っていくためのHow toです。curlには、数多くのオプションが用意されていて、それらを組み合わせる事で様々な事が楽になるでしょう。サービス監視の自動化などにはまさにcurlの得意分野です。 今回は、curlを更に自分のものにしていくために大事なカスタマイズの部分を解説します。