コマンドラインからHTTPリクエストを送信することができるcurlは便利なツールですが、使用するために複雑なオプションを指定しなければならない場合があります。
例えばURLを指定してファイルをダウンロードしたいだけの場合でも-O
オプションを指定する必要があり、もっとシンプルに使いたいという方も多いかもしれません。
この問題を解決するためのシンプルなラッパーツール「wcurl」が公開されています。
Debian開発者のSamuel Henrique氏によって作成されたBashスクリプトで、以下のような形式で使用することができます。
wcurl [--curl-options]... [--dry-run] [--] ... wcurl [--curl-options= ]... [--dry-run] [--] ... wcurl -V|--version wcurl -h|--help
例えばファイルをダウンロードする場合は、次のようにURLを指定するだけで使えます。
wcurl example.com/filename.txt
より複雑なオプション指定が必要な場合--curl-options
でcurlのオプションを渡すこともできます。
以下具体的な使用方法です。
目次
wcurlの使用方法
wcurlはDebianパッケージが作られていて、unstableでは利用可能な状態のようです。
それ以外の環境の場合(bashとcurlが利用できる環境)、GitHubリポジトリをcloneし、その中に含まれるwcurlをパスが通ったディレクトリにコピーすれば使用することができます。
$ git clone https://github.com/curl/wcurl.git $ sudo cp wcurl/wcurl /usr/local/bin
例えばファイルをダウンロードしたい場合、次のように実行します。
$ wcurl softantenna.com/blog
この場合、コマンドを実行したディレクトリにblog
が保存されます。複数のURLを指定して同時にダウンロードすることもできます。
$ wcurl softantenna.com/blog softantenna.com/wiki
wcurlの挙動は次の通りです。
- URLの空白をエンコードする
- インストールされているcurlのバージョンが7.66.0以上の場合、複数のURLを並行してダウンロードする
- リダイレクトに従う
- 出力ファイル名を自動的に選択
- インストールされているcurlのバージョンが7.83.0以上の場合、ファイルの上書きを避ける(--no-clobber)
- 再試行を行う
- ダウンロードしたファイルのタイムスタンプを、利用可能であればサーバーが提供する値に設定する
- curlのURLグロビング・パーサーを無効にして、URLの{}と[]文字を特別扱いしないようにする
wcurl --help
を実行すると使用方法が表示されます。
まとめ
wcurlはcurlを使いやすくするシンプルなラッパーです。Bashスクリプトで作成されているため、知識がある方ならばどのような仕組みになっているのか内容を解析するのも簡単だと思います。