天天看點

Linux的下載下傳指令wget詳解

# tar zxvf wget-1.9.1.tar.gz

# cd wget-1.9.1

# ./configure

# make

# make install

它的用法很簡單.

1)支援斷點下傳功能;這一點,也是網絡螞蟻和FlashGet當年最大的賣點,現在,Wget也可以使用此功能,那些網絡不是太好的使用者可以放心了;

2)同時支援FTP和HTTP下載下傳方式;盡管現在大部分軟體可以使用HTTP方式下載下傳,但是,有些時候,仍然需要使用FTP方式下載下傳軟體;

3)支援代理伺服器;對安全強度很高的系統而言,一般不會将自己的系統直接暴露在網際網路上,是以,支援代理是下載下傳軟體必須有的功能;

4)設定友善簡單;可能,習慣圖形界面的使用者已經不是太習慣指令行了,但是,指令行在設定上其實有更多的優點,最少,滑鼠可以少點很多次,也不要擔心是否錯點滑鼠;

5)程式小,完全免費;程式小可以考慮不計,因為現在的硬碟實在太大了;完全免費就不得不考慮了,即使網絡上有很多所謂的免費軟體,但是,這些軟體的廣告卻不是我們喜歡的;

wget雖然功能強大,但是使用起來還是比較簡單的,基本的文法是:wget [參數清單] URL

下面就結合具體的例子來說明一下wget的用法。

1、下載下傳整個http或者ftp站點。

wget http://place.your.url/here

這個指令可以将http://place.your.url/here 首頁下載下傳下來。使用-x會強制建立伺服器上一模一樣的目錄,如果使用-nd參數,那麼伺服器上下載下傳的所有内容都會加到本地目前目錄。

wget -r http://place.your.url/here

這個指令會按照遞歸的方法,下載下傳伺服器上所有的目錄和檔案,實質就是下載下傳整個網站。這個指令一定要小心使用,因為在下載下傳的時候,被下載下傳網站指向的所有位址同樣會被下載下傳,是以,如果這個網站引用了其他網站,那麼被引用的網站也會被下載下傳下來!基于這個原因,這個參數不常用。可以用-l number參數來指定下載下傳的層次。例如隻下載下傳兩層,那麼使用-l 2。

要是您想制作鏡像站點,那麼可以使用-m參數,例如:wget -m http://place.your.url/here

這時wget會自動判斷合适的參數來制作鏡像站點。此時,wget會登入到伺服器上,讀入robots.txt并按robots.txt的規定來執行。

2、斷點續傳。

當檔案特别大或者網絡特别慢的時候,往往一個檔案還沒有下載下傳完,連接配接就已經被切斷,此時就需要斷點續傳。wget的斷點續傳是自動的,隻需要使用-c參數,例如:

wget -c http://the.url.of/incomplete/file

使用斷點續傳要求伺服器支援斷點續傳。-t參數表示重試次數,例如需要重試100次,那麼就寫-t 100,如果設成-t 0,那麼表示無窮次重試,直到連接配接成功。-T參數表示逾時等待時間,例如-T 120,表示等待120秒連接配接不上就算逾時。

3、批量下載下傳。

如果有多個檔案需要下載下傳,那麼可以生成一個檔案,把每個檔案的URL寫一行,例如生成檔案download.txt,然後用指令:wget -i download.txt

這樣就會把download.txt裡面列出的每個URL都下載下傳下來。(如果列的是檔案就下載下傳檔案,如果列的是網站,那麼下載下傳首頁)

4、選擇性的下載下傳。

可以指定讓wget隻下載下傳一類檔案,或者不下載下傳什麼檔案。例如:

wget -m –reject=gif http://target.web.site/subdirectory

表示下載下傳http://target.web.site/subdirectory,但是忽略gif檔案。–accept=LIST 可以接受的檔案類型,–reject=LIST拒絕接受的檔案類型。

5、密碼和認證。

wget隻能處理利用使用者名/密碼方式限制通路的網站,可以利用兩個參數:

–http-user=USER設定HTTP使用者

–http-passwd=PASS設定HTTP密碼

對于需要證書做認證的網站,就隻能利用其他下載下傳工具了,例如curl。

6、利用代理伺服器進行下載下傳。

如果使用者的網絡需要經過代理伺服器,那麼可以讓wget通過代理伺服器進行檔案的下載下傳。此時需要在目前使用者的目錄下建立一個.wgetrc檔案。檔案中可以設定代理伺服器:

http-proxy = 111.111.111.111:8080

ftp-proxy = 111.111.111.111:8080

分别表示http的代理伺服器和ftp的代理伺服器。如果代理伺服器需要密碼則使用:

–proxy-user=USER設定代理使用者

–proxy-passwd=PASS設定代理密碼

這兩個參數。

使用參數–proxy=on/off 使用或者關閉代理。

wget還有很多有用的功能,需要使用者去挖掘。

例子:

可根據需要選擇用下面的參數:

$ wget -c -r -nd -np -k -L -p -A c,h www.xxx.org/pub/path/

-c   斷點續傳

-r   遞歸下載下傳,下載下傳指定網頁某一目錄下(包括子目錄)的所有檔案

-nd 遞歸下載下傳時不建立一層一層的目錄,把所有的檔案下載下傳到目前目錄

-np 遞歸下載下傳時不搜尋上層目錄,如wget -c -r www.xxx.org/pub/path/

沒有加參數-np,就會同時下載下傳path的上一級目錄pub下的其它檔案

-k   将絕對連結轉為相對連結,下載下傳整個站點後脫機浏覽網頁,最好加上這個參數

-L   遞歸時不進入其它主機,如wget -c -r www.xxx.org/ 如果網站内有一個這樣的連結:

www.yyy.org,不加參數-L,就會像大火燒山一樣,會遞歸下載下傳www.yyy.org網站

-p   下載下傳網頁所需的所有檔案,如圖檔等

-A   指定要下載下傳的檔案樣式清單,多個樣式用逗号分隔

-i   後面跟一個檔案,檔案内指明要下載下傳的URL

附錄:

指令格式:

wget [參數清單] [目标軟體、網頁的網址]

-V 版本資訊

-h 幫助資訊

-b 背景執行Wget

-o filename 把記錄放在檔案filename

-a filename 把記錄附加在檔案filename

-d 顯示調試資訊

-q 無輸出下載下傳方式

-v 詳細的螢幕輸出(預設)

-nv 簡單的螢幕輸出

-i inputfiles 從文本檔案内讀取位址清單

-F forcehtml 從html檔案内讀取位址清單

-t number number次重試下載下傳(0時為無限次)

-O output document file 寫檔案到檔案

-nc 不覆寫已有的檔案

-c 斷點下傳

-N 時間時間戳。該參數指定wget隻下載下傳更新的檔案,也就是說,與本地目錄中的對應檔案的長度和最後修改日期一樣的檔案将不被下載下傳。

-S 顯示伺服器響應

-T timeout 逾時時間設定(機關秒)

-w time 重試延時(機關秒)

-Y proxy=on/off 是否打開代理

-Q quota=number 重試次數

目錄:

-nd –no-directories 不建立目錄.

-x, –force-directories 強制進行目錄建立的工作.

-nH, –no-host-directories 不建立主機的目錄.

-P, –directory-prefix=PREFIX 把檔案存到 PREFIX/…

–cut-dirs=NUMBER 忽略 NUMBER 個遠端的目錄元件.

HTTP 選項:

–http-user=USER 設 http 使用者為 USER.

–http0passwd=PASS 設 http 使用者的密碼為 PASS.

-C, –cache=on/off 提供/關閉快取伺服器資料 (正常情況為提供).

–ignore-length 忽略 `Content-Length’ 标頭欄位.

–proxy-user=USER 設 USER 為 Proxy 使用者名稱.

–proxy-passwd=PASS 設 PASS 為 Proxy 密碼.

-s, –save-headers 儲存 HTTP 标頭成為檔案.

-U, –user-agent=AGENT 使用 AGENT 取代 Wget/VERSION 作為識别代号.

FTP 選項:

–retr-symlinks 取回 FTP 的象徵連結.

-g, –glob=on/off turn file name globbing on ot off.

–passive-ftp 使用 “passive” 傳輸模式.

使用遞回方式的取回:

-r, –recursive 像是吸入 web 的取回 — 請小心使用!.

-l, –level=NUMBER 遞回層次的最大值 (0 不限制).

–delete-after 删除下載下傳完畢的檔案.

-k, –convert-links 改變沒有關連的連結成為有關連.

-m, –mirror 開啟适合用來映射的選項.

-nr, –dont-remove-listing 不要移除 `.listing’ 檔.

遞回式作業的允許與拒絕選項:

-A, –accept=LIST 允許的擴充項目的清單

. -R, –reject=LIST 拒絕的擴充項目的清單.

-D, –domains=LIST 允許的網域清單.

–exclude-domains=LIST 拒絕的網域清單 (使用逗号來分隔).

-L, –relative 隻跟随關聯連結前進.

–follow-ftp 跟随 HTML 檔案裡面的 FTP 連結.

-H, –span-hosts 當開始遞回時便到外面的主機.

-I, –include-directories=LIST 允許的目錄清單.

-X, –exclude-directories=LIST 排除的目錄清單.

-nh, –no-host-lookup 不透過 DNS 查尋主機.

-np, –no-parent 不追朔到起源目錄.

--End--

繼續閱讀