Curl
curl 使用大括號語法下載多個文件
我正在嘗試通過以下語法下載兩個文件:
curl -O http://domain/path/to/{file1,file2}
問題是只有第一個文件實際保存在本地,而第二個文件只是簡單地列印到標準輸出。
我確實意識到,如果我添加
-O
它就可以了:curl -OO http://domain/path/to/{file1,file2}
但是,如果文件數量太大,這不是不切實際嗎?例如,
curl -O http://domain/path/to/file[1,100]
我的問題是,真的沒有辦法一次下載多個單獨的文件
curl
(不添加正確數量的-O
)嗎?
**更新:**這已在 curl 7.19.0 中實現。請參閱@Besworks 答案。
根據手冊頁,除了使用多個 O 之外,沒有辦法保留原始文件名。或者,您可以使用自己的文件名:
curl http://{one,two}.site.com -o "file_#1.txt"
導致
http://one.site.com
被保存到file_one.txt
並被http://two.site.com
保存到file_two.txt
.甚至是多個變數,例如
curl http://{site,host}.host[1-5].com -o "#1_#2"
導致
http://site.host1.com
被保存到site_1
,http://host.host1.com
被保存到host_1
等等。
我意識到這個問題已經有一個公認的答案,但我覺得我應該指出實際上有一種方法可以做到這一點。
該
--remote-name-all
選項告訴 curl 表現得就像您使用-O
或--remote-name
為每個文件一樣。https://curl.haxx.se/docs/manpage.html#--remote-name-all
此選項從 7.19.0 版本開始可用