https://hoge.com/fuga.txt
https://piyo.com/hogera.txt
を1つのcurl
コマンドでダウンロードしたい。
TL; DR (複数の個別URLを同時に指定)
-O
オプションを各々付けて繋げて記載する。(ロングオプション名:--remote-name
)ファイル名を指定して保存したい場合は
-o
オプションを各々つけて記載する。(ロングオプション名:--output
)
curl -O https://hoge.com/fuga.txt -O https://piyo.com/hogera.txt
curl -o foo.txt https://hoge.com/fuga.txt -o bar.txt https://piyo.com/hogera.txt
curl --remote-name https://hoge.com/fuga.txt \
--remote-name https://piyo.com/hogera.txt
curl --output foo.txt https://hoge.com/fuga.txt \
--output bar.txt https://piyo.com/hogera.txt
curl --location https://hoge.com/fuga.txt --output foo.txt \
--location https://piyo.com/hogera.txt --output bar.txt
参考文献
- How to Download Files with cURL (5 Examples) @ TecAdmin
- curl option 覚え書き | ダウンロードしたデータをファイルとして保存 @ Qiita
TS;DR
GitHub 上のリリース・ファイルと、その署名や公開鍵など、複数ファイルの個別ダウンロードが面倒になりました同時指定によるダウンロードがシェル操作で必要になりました。できることならワンライナーでコピペピピックしたかったのです。
シェルのデータ転送の王道コマンドラインツールと言えば「wget」と「cURL」です。
いつも使っている wget
は機能が豊富で、かゆいところにも手が届くのですが、macOS には wget は標準で入っていません。まっさらな環境でのダウンロードを想定しているため curl
を使うことにしました。
curl
のマニュアル(man curl
)を読むと「URL は好きなだけ記述できます」と書いてあります。
-O, --remote-name
(中略)
You may use this option as many times as the number of URLs you have.
そこで以下のようにしてみたのですが、うまく動きませんでした。
curl -O https://hoge.com/fuga.txt https://piyo.com/hogera.txt
いま思えば「use this option
as many times as the number of URLs
」とあるので、「このオプションを URL の数だけ使え」ということなのですが、検索猿人なため深く考えずに調べに行ってしまいました。
「site:qiita.com
curl
複数ファイル
ダウンロード
」と Qiita 記事に絞ってググってみたのですが、シェル・スクリプトに1つ1つ記入したり、ダウンロード一覧のファイルを別途用意したり、パイプ渡しするものはあれど、同じコマンド行に併記する情報がなかなか見つかりません。
そこで Qiita 以外のサイトを検索したら、ドンピシャな英語の記事が。
3
. Download Multiple Files
Use following command to download files from multiple files from multiple remote servers using HTTP protocol. The following example will downloadlatest.tar.gz
andlatest.zip
from remote servers and save in current directory with same names.(筆者訳)
3
. 複数ファイルのダウンロード
次のコマンドを使えば、HTTP プロトコルを使用して、複数のリモートサーバーや複数のファイルをダウンロードできます。次の使用例はリモートサーバーからlatest.tar.gz
とlatest.zip
をダウンロードし、現在のディレクトリに同じ名前で保存します。curl -O http://wordpress.org/latest.tar.gz -O http://wordpress.org/latest.zip % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 178 100 178 0 0 202 0 --:--:-- --:--:-- --:--:-- 202 100 178 100 178 0 0 387 0 --:--:-- --:--:-- --:--:-- 387
- How to Download Files with cURL (5 Examples) @ TecAdmin
Oh ...
併せて読みたい
-
-o
(小文字のオー)オプションでも複数ダウンロード可能です。- curl option 覚え書き @ Qiita