Linux中curl命令和wget命令的使用介紹與比較
本文介紹的是Linux中curl命令和wget命令,這兩者都是用來(lái)下載文件的工具,下面來(lái)看看詳細(xì)的介紹:
一、wget
wget是linux最常用的下載命令, 一般的使用方法是: wget + 空格 + 要下載文件的url路徑
例1:
wget http://www.minjieren.com/wordpress-3.1-zh_CN.zip
下載文件保存到當(dāng)前目錄,文件名默認(rèn)是url最后一個(gè)/后面的內(nèi)容,這里就是 wordpress-3.1-zh_CN.zip
例2:
wget -O myfile http://www.minjieren.com/wordpress-3.1-zh_CN.zip
通過(guò)-O參數(shù),可以指定文件名,這里指定的是myfile
例3:
wget www.baidu.com
會(huì)在當(dāng)前目錄生成一個(gè)index.html文件
二、curl
在Linux中curl是一個(gè)利用URL規(guī)則在命令行下工作的文件傳輸工具,可以說(shuō)是一款很強(qiáng)大的http命令行工具。它支持文件的上傳和下載,是綜合傳輸工具,但按傳統(tǒng),習(xí)慣稱url為下載工具。
語(yǔ)法:# curl [option] [url]
常見(jiàn)參數(shù):
- -A/--user-agent <string> 設(shè)置用戶代理發(fā)送給服務(wù)器
- -b/--cookie <name=string/file> cookie字符串或文件讀取位置
- -c/--cookie-jar <file> 操作結(jié)束后把cookie寫入到這個(gè)文件中
- -C/--continue-at <offset> 斷點(diǎn)續(xù)轉(zhuǎn)
- -D/--dump-header <file> 把header信息寫入到該文件中
- -e/--referer 來(lái)源網(wǎng)址
- -f/--fail 連接失敗時(shí)不顯示http錯(cuò)誤
- -o/--output 把輸出寫到該文件中
- -O/--remote-name 把輸出寫到該文件中,保留遠(yuǎn)程文件的文件名
- -r/--range <range> 檢索來(lái)自HTTP/1.1或FTP服務(wù)器字節(jié)范圍
- -s/--silent 靜音模式。不輸出任何東西
- -T/--upload-file <file> 上傳文件
- -u/--user <user[:password]> 設(shè)置服務(wù)器的用戶和密碼
- -w/--write-out [format] 什么輸出完成后
- -x/--proxy <host[:port]> 在給定的端口上使用HTTP代理
- -#/--progress-bar 進(jìn)度條顯示當(dāng)前的傳送狀態(tài)
例:
curl -O http://download.oracle.com/otn-pub/java/jdk/8u91-b14/jdk-8u91-linux-i586.tar.gz
下載文件保存到當(dāng)前目錄,文件名默認(rèn)是url最后一個(gè)/后面的內(nèi)容,這里就是 jdk-8u91-linux-i586.tar.gz。
注意:必須要加-O參數(shù),否則是直接在控制臺(tái)上顯示文件內(nèi)容了.
說(shuō)明:這兩個(gè)命令工具,linux系統(tǒng)中缺省不一定有的,如果沒(méi)有,需要自己安裝。如果是在ubuntu下。
可以執(zhí)行如下命令進(jìn)行安裝
sudo apt-get install curl
它們的區(qū)別有如下幾點(diǎn):
1.curl是libcurl這個(gè)庫(kù)支持的,wget是一個(gè)純粹的命令行命令。
2.curl支持更多的協(xié)議。curl supports FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FILE, POP3, IMAP, SMTP and RTSP at the time of this writing. Wget supports HTTP, HTTPS and FTP.
3.curl 默認(rèn)支持HTTP1.1(也支持1.0),而wget僅僅支持HTTP1.0規(guī)范。引用wget的man page中的一段話吧,
Please be aware that Wget needs to know the size of the POST data in advance. It's not quite clear how to work around this limitation inherent in HTTP/1.0. Although HTTP/1.1 introduces chunked transfer that doesn't require knowing the request length in advance, a client can't use chunked unless it knows it's talking to an HTTP/1.1 server. And it can't know that until it receives a response, which in turn requires the request to have been completed -- a chicken-and-egg problem.
4.curl在指定要下載的鏈接時(shí)能夠支持URL的序列或集合,而wget則不能這樣;
5.wget支持遞歸下載,而curl則沒(méi)有這個(gè)功能。(這是wget的一個(gè)主要好處,wget也是有優(yōu)勢(shì)的,呵呵)
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)本站的支持。
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信