Wget
從 Linux Wiki
簡介
Wget是在*inx系統中常用的命令行下載工具。Linux中的版本是GNU Wget,它是GNU計劃的一部分,名字是「World Wide Web」和「Get」的縮寫,暗示了軟件的主要功能。[1]目前它支持通過HTTP、HTTPS和FTP這三個最常見的TCP/IP協議協議下載文件。
由於Wget是非交互式的命令行工具,一旦開始運行,就無需用戶的操作,所以它非常適合於在腳本中使用,也可用於定時執行的程序中。
Wget可以跟蹤HTML頁面上的鏈接依次下載來創建遠程服務器的本地版本,完全重建原始站點的目錄結構。這又常被稱作"遞歸下載"。在遞歸下載的時候,Wget遵循Robot Exclusion標準(/robots.txt),Wget還會檢查文件的時間戳,避免重複下載。Wget可以在下載的同時,將鏈接轉換成指向本地文件,以方便離線瀏覽。[2]
Wget在帶寬很窄的情況下和不穩定網絡中有很強的適應性。如果是由於網絡的原因下載失敗,Wget會不斷的嘗試,直到整個文件下載完畢。如果是服務器打斷下載過程,它會再次連到服務器上從停止的地方繼續下載。這對從那些限定了鏈接時間的服務器上下載大文件非常有用。
Wget還具有如下特點[3]:
- 支持多種操作系統,包括類unix操作系統和Windows系統
- 支持代理服務器、HTTP cookies等
- 支持HTTP鏈接保持,加快從一個服務器連續下載多個文件的速度
- 使用GPL協議發佈,且可免費下載
當然,Wget的功能也是有限的,主要的問題如支持的協議還不夠多。流行的流媒體協議mms和rtsp也沒有得到支持,還有廣泛使用各種的P2P協議也沒有涉及。
使用方法
Wget最基本的用法很簡潔:[1]
# 下载某个网站的首页: wget http://www.example.com/ # 下载Wget的源代码: wget ftp://ftp.gnu.org/pub/gnu/wget/wget-latest.tar.gz # 下载example.com首页的所有内容 wget -r -l 0 http://www.example.com/ # 续传未下载完的大文件 wget -c http://example.com/really-big-file.iso
Wget還有一些使用技巧:[4]
wget -r -np -nd http://example.com/packages/
上面的命令可以下載 http://example.com/packages 目錄下的所有文件。其中-np表明不遍歷父目錄,-nd 表示不在本機重新創建目錄結構。
--accept也很有用:
wget -r -np -nd --accept=iso http://example.com/centos-5/i386/
上面的命令表示只下載後綴為iso的文件。也可以使用通配符做為參數值,這時Wget將把其當做一個模式串,下載所有文件名與之匹配的串。
--reject與--accept恰好相反,表明不下載哪些文件。
下載一個URL列表文件中的所有文件
wget -i filename.txt
為一個網站做鏡像,把鏈接轉成本地鏈接:
wget -m -k (-H) http://www.example.com/
-H參數會允許Wget跨站點下載文件,請按需使用。
參考資料
- ↑ 1.0 1.1 http://en.wikipedia.org/wiki/Wget
- ↑ http://baike.baidu.com/view/1312507.htm
- ↑ http://www.gnu.org/software/wget/
- ↑ http://tipotheday.com/2007/10/11/wget-some-quick-tips/