curl工具介紹和常用命令
阿新 • • 發佈:2019-02-08
curl是利用URL語法在命令列方式下工作的開原始檔傳輸工具。它被廣泛應用在Unix、Linux發行版中,並且有DOS和Win32、Win64的移植版本。curl是一個利用URL規則在命令列下工作的文字傳輸工具。它支援上傳和下載,所以是綜合傳輸工具,但按傳統,習慣稱url為下載工具。
常用命令:
1、下載單個檔案,預設將輸出列印到標準輸出(stdout)中
curl http://www.centos.org
2、通過將-o/-O選項儲存下載的檔案到指定的檔案中:
-o:將檔案儲存為命令列中指定的檔名的檔案中
curl -o mygettext.html http://www.gnu .org/software/gettext/manual/gettext.html
-O:使用URL中預設的檔名儲存檔案到本地
curl -O http://www.gnu.org/software/gettext/manual/gettext.html
同時,也可以使用轉向符“>”對輸出進行轉向輸出。
3、同時獲取多個檔案:
curl -O URL1 -O URL2
若同時從同一個站點下載多個檔案時,curl會嘗試重用連結(connection)。
通過-L選項進行重定向
預設情況下CURL不會發送HTTP Location headers(重定向),當一個被請求頁面移動到另一個站點時,會發送一個HTTP Location header作為請求,然後將請求重定向到新的地址上。
例如,訪問google.com 時,會自動將地址重定向到google.com.hk上:
curl http://www.google.com
<HTML>
<HEAD>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE>
</HEAD>
<BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://www.google.com.hk/url?sa=p&hl=zh-CN&pref=hkredirect&pval=yes&q=http://www.google.com.hk/&ust=1379402837567135amp;usg=AFQjCNF3o7umf3jyJpNDPuF7KTibavE4aA" >here</A>.
</BODY>
</HTML>
上述說明,所有請求的檔案被轉移到了http://www.google.com.hk
這時可以通過使用-L選項進行強制的重定向:
# 讓curl使用地址進行重定向,此時會查詢google.com.hk站點
curl -L http://www.google.com
斷點續傳
通過使用-C選項可對大檔案使用斷點續傳功能,如:
# 當檔案在下載完成之前結束該程序
$ curl -O http://www.gnu.org/software/gettext/manual/gettext.html
############## 20.1%
# 通過新增-C選項繼續對該檔案進行下載,已經下載過的檔案不會被重新下載
curl -C - -O http://www.gnu.org/software/gettext/manual/gettext.html
############### 21.1%
從FTP伺服器下載檔案
CURL同樣支援FTP下載,若在url中指定的是某個檔案路徑而非具體的某個要下載的檔名,CURL則會列出該目錄下的所有檔名而非下載該目錄下的所有檔案:
# 列出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