1. 程式人生 > >curl工具介紹和常用命令

curl工具介紹和常用命令

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&amp;hl=zh-CN&amp;pref=hkredirect&amp;pval=yes&amp;q=http://www.google.com.hk/&amp;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