1. 程式人生 > >Linux curl與wget 命令的區別和聯絡

Linux curl與wget 命令的區別和聯絡

        當想要直接通過 Linux 命令列下載檔案,馬上就能想到兩個工具:wget 和 curl。它們有很多一樣的特徵,可以很輕易的完成一些相同的任務。

       雖然它們有一些相似的特徵,但它們並不是完全一樣。這兩個程式適用與不同的場合,在特定場合下,都擁有各自的特性。

curl與wget相似之處:

       wget 和 cURL 都可以下載內容。它們的核心就是這麼設計的。它們都可以向網際網路傳送請求並返回請求項。這可以是檔案、圖片或者是其他諸如網站的原始 HTML 之類。

       這兩個程式都可以進行 HTTP POST 請求。這意味著它們都可以向網站傳送資料,比如說填充表單什麼的。

       由於這兩者都是命令列工具,它們都被設計成可指令碼化。wget 和 cURL 都可以寫進你的 Bash 指令碼 ,自動與新內容互動,下載所需內容。

curl的優勢:

cURL是一個多功能工具。當然,它可以下載網路內容,但同時它也能做更多別的事情。

cURL 技術支援庫是:libcurl。這就意味著你可以基於 cURL 編寫整個程式,允許你基於 libcurl 庫中編寫圖形環境的下載程式,訪問它所有的功能。

cURL 寬泛的網路協議支援可能是其最大的賣點。cURL 支援訪問 HTTP 和 HTTPS 協議,能夠處理 FTP 傳輸。它支援 LDAP 協議,甚至支援 Samba 分享。實際上,你還可以用 cURL 收發郵件。

cURL 也有一些簡潔的安全特性。cURL 支援安裝許多 SSL/TLS 庫,也支援通過網路代理訪問,包括 SOCKS。這意味著,你可以越過 Tor 來使用cURL。

cURL 同樣支援讓資料傳送變得更容易的 gzip 壓縮技術。

wget的優勢:

wget 簡單直接。這意味著你能享受它超凡的下載速度。wget 是一個獨立的程式,無需額外的資源庫,更不會做其範疇之外的事情。

wget 是專業的直接下載程式,支援遞迴下載。同時,它也允許你下載網頁中或是 FTP 目錄中的任何內容。

wget 擁有智慧的預設設定。它規定了很多在常規瀏覽器裡的事物處理方式,比如 cookies 和重定向,這都不需要額外的配置。可以說,wget 簡直就是無需說明,開罐即食!

總結:

        那你應該使用 cURL 還是使用 wget?這個比較得看實際用途。如果你想快速下載並且沒有擔心引數標識的需求,那你應該使用輕便有效的 wget。如果你想做一些更復雜的使用,直覺告訴你,你應該選擇 cRUL。

cURL 支援你做很多事情。你可以把 cURL 想象成一個精簡的命令列網頁瀏覽器。它支援幾乎你能想到的所有協議,可以互動訪問幾乎所有線上內容。唯一和瀏覽器不同的是,cURL 不會渲染接收到的相應資訊。

轉自:https://linux.cn/article-9330-1.html

————————————————————分界線——————————————————

       wget是個專職的下載利器,簡單,專一,極致;而curl可以下載,但是長項不在於下載,而在於模擬提交web資料,POST/GET請求,除錯網頁,等等。

        在下載上,也各有所長,wget可以遞迴,支援斷點;而curl支援URL中加入變數,因此可以批量下載。

curl(檔案傳輸工具)

常用引數如下:

-c,–cookie-jar:將cookie寫入到檔案

-b,–cookie:從檔案中讀取cookie

-C,–continue-at:斷點續傳

-d,–data:http post方式傳送資料

-D,–dump-header:把header資訊寫入到檔案

-F,–from:模擬http表達提交資料

-s,–slient:減少輸出資訊

-o,–output:將資訊輸出到檔案

-O,–remote-name:按照伺服器上的檔名,存在本地

–l,–head:僅返回頭部資訊

-u,–user[user:pass]:設定http認證使用者和密碼

-T,–upload-file:上傳檔案

-e,–referer:指定引用地址

-x,–proxy:指定代理伺服器地址和埠

-w,–write-out:輸出指定格式內容

–retry:重試次數

–connect-timeout:指定嘗試連線的最大時間/s

wget(檔案下載工具)

常用引數如下:

1、 啟動引數

-V,–version:顯示版本號

-h,–help:檢視幫助

-b,–background:啟動後轉入後臺執行

2、 日誌記錄和輸入檔案引數

-o,–output-file=file:把記錄寫到file檔案中

-a,–append-output=file:把記錄追加到file檔案中

-i,–input-file=file:從file讀取url來下載

3、 下載引數

-bind-address=address:指定本地使用地址

-t,-tries=number:設定最大嘗試連線次數

-c,-continue:接著下載沒有下載完的檔案

-O,-output-document=file:將下載內容寫入到file檔案中

-spider:不下載檔案

-T,-timeout=sec:設定響應超時時間

-w,-wait=sec:兩次嘗試之間間隔時間

–limit-rate=rate:限制下載速率

-progress=type:設定進度條

4、目錄引數

-P,-directory-prefix=prefix:將檔案儲存到指定目錄

5、 HTTP引數

-http-user=user:設定http使用者名稱

-http-passwd=pass:設定http密碼

-U,–user-agent=agent:偽裝代理

-no-http-keep-alive:關閉http活動連結,變成永久連結

-cookies=off:不使用cookies

-load-cookies=file:在開始會話前從file檔案載入cookies

-save-cookies=file:在會話結束將cookies儲存到file檔案

6、 FTP引數

-passive-ftp:預設值,使用被動模式

-active-ftp:使用主動模式

7、 遞迴下載排除引數

-A,–accept=list:分號分割被下載副檔名的列表

-R,–reject=list:分號分割不被下載副檔名的列表

-D,–domains=list:分號分割被下載域的列表

–exclude-domains=list:分號分割不被下載域的列表

轉自:https://jingyan.baidu.com/article/eb9f7b6d63f092869264e856.html