萬盛學電腦網

 萬盛學電腦網 >> Linux教程 >> 什麼是wget命令

什麼是wget命令

wget

wget是一個命令行工具——是歷史上最快的單線程傳輸工具,用於下載網站/批量文件,支持HTTP和FTP。 它的任務就是獲取互聯網。首先,基本上所有的面向個人計算機的Linux都帶 wget。

wget是一個從網絡上自動下載文件的自由工具。它支持HTTP,HTTPS和FTP協議,可以使用HTTP代理.

所謂的自動下載是指,wget可以在用戶退出系統的之後在後台執行。這意味這你可以登錄系統,啟動一個wget下載任務,然後退出系統,wget將在後台執行直到任務完成,相對於其它大部分浏覽器在下載大量數據時需要用戶一直的參與,這省去了極大的麻煩。

wget可以跟蹤HTML頁面上的鏈接依次下載來創建遠程服務器的本地版本,完全重建原始站點的目錄結構。這又常被稱作"遞歸下載"。在遞歸下載的時候,wget遵循Robot Exclusion標准(/robots.txt). wget可以在下載的同時,將鏈接轉換成指向本地文件,以方便離線浏覽。

wget非常穩定,它在帶寬很窄的情況下和不穩定網絡中有很強的適應性.如果是由於網絡的原因下載失敗,wget會不斷的嘗試,直到整個文件下載完畢。如果是服務器打斷下載過程,它會再次聯到服務器上從停止的地方繼續下載。這對從那些限定了鏈接時間的服務器上下載大文件非常有用

命令格式

wget [options] [URL]

用wget做站點鏡像

wget -r -p -np -k [url]

# 或者

 wget -m [url]

在不穩定的網絡上下載一個部分下載的文件,以及在空閒時段下載

wget -t 0 -w 31 -c [url] -o down.log &

從filelist讀入要下載的文件列表

wget -t 0 -w 31 -c -B [url] -i filelist.txt -o down.log   &

上面的代碼還可以用來在網絡比較空閒的時段進行下載。我的用法是:在mozilla中將不方便當時下載的URL鏈接拷貝到內存中然後粘貼到文件filelist.txt中,在晚上要出去系統前執行上面代碼的第二條。

使用代理下載

wget -Y on -p -k [url]

代理可以在環境變量或wgetrc文件中設定

在環境變量中設定代理

export   PROXY=http://211.90.168.94:8080/

在~/.wgetrc中設定代理

http_proxy = http://proxy.yoyodyne.com:18023/
ftp_proxy = http://proxy.yoyodyne.com:18023/

wget示例

如果我們想下載ftp裡面某個目錄裡面的所有文件,

wget -r ftp://10.8.8.8/movie/  

呵呵,等吧!下完了,發覺有些不對勁,怎麼出來個10.8.8.8的目錄,進去看看,又是一個movie,哦,wget將目錄結構和網站標題都給記錄下來了,不要??沒有問題!比如說還是這個例子

wget -r -nd ftp://10.8.8.8/movie/  

結果什麼目錄都沒有了,faint!怎麼會這樣?呵呵,你如果想要這樣就讓它這樣吧,否則使用

wget -r -nH ftp://10.8.8.8/movie/  

恩?movie也不要?OK,那就這樣

wget -r -nH --cut-dirs=1 ftp://10.8.8.8/movie/  

斷線了?超時了? 加個 -c 繼續

wget -c -r -nH --cut-dirs=1 ftp://10.8.8.8/movie/  

我們下載這裡面所有的宏包,呵呵

wget -r -k http://www.ctan.org/tex-archive/macros/latex/  

-k表示將連接轉換為本地連接。但是現在同樣有上面的問題啊,那就把你需要的加上吧,另外也許你根本不需要向下走那麼多層,比如,我們就要到第二層,那麼

wget -r -l2 -k http://www.ctan.org/tex-archive/macros/latex/  

現在新的問題是,由於網頁有一個排序功能,很討厭,因為下載的時候把網頁重復了好多次,那麼我們可使用-A和-R開關控制下載類型,並且可以使用通配符,呵呵,現在隨心所欲了吧

wget -r -R ".htm\?*" -k http://www.ctan.org/tex-archive/macros/latex/  

這次沒有那種網頁了吧?-R的意義在於拒絕下載匹配類型的文件,-A表示僅僅接受的文件類型,如-A "*.gif"將僅下載gif圖片,如果有多個允許或者不允許,可以使用,分開。

那麼,我們現在在使用代理服務器,怎麼辦呢?呵呵,很高興你選擇了wget,你可以使用它的配置文件,環境變量來利用代理。這裡推薦使用環境變量,如在 bash裡面我們可以把天天用的proxy加到.bash_profile裡面,這是Linux標准寫法(很多軟件都用的,什麼apt-get,yum等等)

export http_proxy=http://10.20.30.40:8080/  

然後,proxy就默認打開了,如果需要暫時關閉,可以使用

wget --proxy=off -r -k http://www.ctan.org/tex-archive/ma
						
copyright © 萬盛學電腦網 all rights reserved