curl命令是一個利用URL規則在命令行下工作的文件傳輸工具。它支持文件的上傳和下載,所以是綜合傳輸工具,但按傳統,習慣稱curl為下載工具。作為一款強力工具,curl支持包括HTTP、HTTPS、ftp等眾多協議,還支持POST、cookies、認證、從指定偏移處下載部分文件、用戶代理字符串、限速、文件大小、進度條等特征。
通過-o/-O選項保存下載的文件到指定的文件中:
-o:將文件保存為命令行中指定的文件名的文件中
-O:使用URL中默認的文件名保存文件到本地
# 將文件下載到本地 curl -o mygettext.html http://www.ete.com/123.html
# 將文件保存到本地 curl -O http://www.ete.com/123.htm
# 同時獲取多個文件 curl -O URL1 -O URL2
# 讓curl使用地址重定向,此時會查詢google.com.hk站點 curl -L http://www.google.com
# 通過添加-C選項繼續對該文件進行下載,已經下載過的文件不會被重新下載 curl -C - -O url
# 在訪問需要授權的頁面時,可通過-u選項提供用戶名和密碼進行授權 curl -u username:password URL
# 列出public_html下的所有文件夾和文件 curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/
# 下載xss.php文件 curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/xss.php
# 將myfile.txt文件上傳到服務器 curl -u ftpuser:ftppass -T myfile.txt ftp://ftp.testserver.com
# 同時上傳多個文件 curl -u ftpuser:ftppass -T "{file1,file2}" ftp://ftp.testserver.com
# 從標准輸入獲取內容保存到服務器指定的文件中 curl -u ftpuser:ftppass -T - ftp://ftp.testserver.com/myfile_1.txt
傳遞請求數據
默認curl使用GET方式請求數據,這種方式下直接通過URL傳遞數據
可以通過 --data/-d 方式指定使用POST方式傳遞數據
在新版本的CURL中,提供了新的選項 --data-urlencode,通過該選項提供的參數會自動轉義特殊字符。 curl --data-urlencode "value 1" http://hostname.com
除了使用GET和POST協議外,還可以通過 -X 選項指定其它協議,如: curl -I -X DELETE https://api.github.cim
上傳文件 curl --form "fileupload=@filename.txt" http://hostname/resource