YAMAGUCHI::weblog

噛み付き地蔵に憧れて、この神の世界にやってきました。マドンナみたいな男の子、コッペです。

cURLのオプション

はじめに

こんにちは、季節は秋ですがいかがお過ごしですか?僕は家で筋トレ生活です。さてMacでコマンドラインからファイルをダウンロードしたりするときにcurlというコマンドを使います。このコマンド今までオプション使わずにリダイレクトでファイルとか作ってましたがだいぶ情弱な感じなのでオプションを使うようにしました。
id:moriyoshi曰く「cURLの方がwgetより使い甲斐があるからLinuxでもパッケージ入れて使ってるよ」とのことなので僕もそうします。

使い方

自分が使うオプション一覧はこんな感じ。

オプション 意味
-O/--remote-name リンク先のファイル名でダウンロードする
-R/--remote-time ファイルのタイムスタンプを保持
-d/--data フォームがあってボタンを押すとアップロードが始まるような場合にこれで代用できる。nameはフォームのID
-F/--form "" フォームがあってボタンを押すとアップロードが始まるような場合にこれで代用できる。nameはフォームのID
-u/--user userid:password ユーザ認証がある場合
-x/--proxy プロキシの使用

連番のファイルを落とす

例えば複数の画像ファイルを落としたいというときが有りますよね。その時にいちいちshell script書くのもめんどくさいのでcurlを使います。連番を指定するときはカギ括弧([ ])を使います。連番はアルファベット順も可能です。

$ curl -O http://example.com/jpeg/img[001-100[.jpg
$ curl -O http://example.com/docs/file[A-Z].jpg

あるいは波括弧({ })を使ってブレース展開させることも出来ます。

$ curl -O http://example.com/jpeg/img{001,101,201}.jpg

サンプル

WebDAVでユーザ認証があるようなファイルの場合
$ curl -O -u foo:mypassword http://example.com/dav/pic[001-100].jpg
アップローダーにあるようなファイルの場合
$ curl -O -d download_pass=secretpass http://example.com/srv01/secretfile_{foo,bar,buz}.mp3