cURL支援HTTP、HTTPS、FTP協定,也支援POST,cookie,斷點續傳,userAgent,extra header, 限速,檔案大小限制,進度條等等。
預設情況下,linux的發行版往往不帶cURL,需要自行安裝。
cURL通常将下載下傳檔案輸出到stdout,将進度資訊輸出到stderr,如果不想顯示進度資訊,可以使用--silent選項。
最簡單的使用:
$ curl URL --silent
這樣的指令會把檔案輸出到終端,如果想寫入檔案,可以使用-O選項。
$ curl URL --silent -O
如果不指明輸出檔案名,就會使用從URL中解析出來的檔案名,例如
$ curl http://linux.web-coding.tech/index.html --silent -O
這樣就會得到一個index.html檔案。
如果無法從URL中解析出檔案名,指令執行時會報錯,是以你可以指定檔案名:
$ curl http://linux.web-coding.tech/ --silent -o index.html
注意前者是-O,後者是-o。
curl支援從特定的檔案偏移量處繼續下載下傳,
$ curl URL -C offset
offset就是以位元組為機關的整數。
如果隻想斷點續傳,可以這樣
$ curl URL -C -URL
我們可以用curl存儲cookie為一個檔案
$ curl URL --cookie-jar cookie_file
如果要指定cookie
$ curl URL --cookie "key1=value1;key2=value2"
cookies是用key=value的形式給出,多個cookie以分号隔開。
有一些網頁會檢測通路的userAgent,這時候如果希望能按照指定的方式通路,就需要指定userAgent
$ curl URL --user-agent "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1"
用-A和--user-agent是一樣的。
同樣的,如果需要設定通路的header
$ curl URL -H "Host:linux.web-coding.tech" -H "Accept-Language: zh-CN"
如果隻想擷取請求響應的頭,可以使用-I或者-head
$ curl -I http://linux.web-coding.tech
如果帶寬有限,可以使用--limit-rate來限制下載下傳速度
$ curl URL --limit-rate 20k
速度機關支援k和m。
還可以指定下載下傳的最大檔案大小
$ curl URL --max-filesize 2500000
這裡檔案大小機關是byte。
curl指令也支援認證
$ curl -u username:password URL
$ curl -u username URL