2012年4月18日

cURL 批次下載指令教學


 
在先前的文章中有提到,
cURL 和 wget 一樣是 linux 中檔案下載時非常實用的工具,
大部份的下載工作兩者都同樣能達成,
不同的是 curl 還可以支援上傳的功能。
想知道兩者的用法可以先到我先前整理的文章看一下:
  1. wget 指令用法與教學
  2. cURL 指令用法與教學
圖片來源:http://web.ee.yuntech.edu.tw/lab/videolab/download.html

這篇要來說的是 curl 如何支援批次下載,
原本想說大部份的下載功能 curl 和 wget 都一樣,
沒想到用 wget 要批次下載時卻出現了這樣的警告。
「Warning: wildcards not supported in HTTP.」
「警告: HTTP 不支援萬用字元。」

原因很明顯啦,就是 wget 的 HTTP 不支援萬用字元的批次下載。
幸好換到 curl 這個問題簡直就是 a piece of cake。
只要善用 [ ] 即可,請看以下範例:

下載單一檔案:
# curl -O http://xxx.xx/filename.xxx

批次下載編號 1,2~15:
# curl -O http://xxx.xx/filename[1-15].xxx

批次下載編號 01,02~15,自動補0:
# curl -O http://xxx.xx/filename[01-15].xxx

這次我用來解決問題的指令和結果如下:
# curl -O http://vault.centos.org/5.7/isos/x86_64/CentOS-5.7-x86_64-bin-[1-8]of8.iso

[1/8]: http://vault.centos.org/5.7/isos/x86_64/CentOS-5.7-x86_64-bin-1of8.iso --> CentOS-5.7-x86_64-bin-1of8.iso
--_curl_--http://vault.centos.org/5.7/isos/x86_64/CentOS-5.7-x86_64-bin-1of8.iso
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  627M  100  627M    0     0   141k      0  1:15:26  1:15:26 --:--:--  205k

[2/8]: http://vault.centos.org/5.7/isos/x86_64/CentOS-5.7-x86_64-bin-2of8.iso --> CentOS-5.7-x86_64-bin-2of8.iso
--_curl_--http://vault.centos.org/5.7/isos/x86_64/CentOS-5.7-x86_64-bin-2of8.iso
100  632M  100  632M    0     0   101k      0  1:46:27  1:46:27 --:--:-- 81717

[3/8]: http://vault.centos.org/5.7/isos/x86_64/CentOS-5.7-x86_64-bin-3of8.iso --> CentOS-5.7-x86_64-bin-3of8.iso
--_curl_--http://vault.centos.org/5.7/isos/x86_64/CentOS-5.7-x86_64-bin-3of8.iso
100  632M  100  632M    0     0  84003      0  2:11:40  2:11:40 --:--:-- 82888

......

以上就是用 curl 批次下載檔案的方法啦,供大家參考。
值得一提的是雖然 [ ] 非常好用,但偶爾 curl 也會會錯意,
如果檔名中有  [ ] ,curl 可是會誤會你的意思而發生錯誤的喔!
請參考:curl: (3) [globbing] illegal character in range specification at pos …

如果還想知道我用了 curl 做了什麼其他的事,或遇上了什麼問題,
我都已經統一整理在 cURL 指令用法與教學 囉!歡迎大家參考指教 :p

關鍵字:cURL, 批次, 下載, 萬用字元, 指令, 教學
參考資料:


更多精選推薦文章