返回列表 回復 發帖

[分享] Linux 使用 wget 教學,下載速度超快,非常好用

[分享] Linux 使用 wget 教學,下載速度超快,非常好用

Linux發行版 都自帶 wget ,有多少人不會使用呢?
wget 是一個命令行的下載工具。對於我們這些 Linux 用戶來說,幾乎每天都在使用它。下面為大家介紹幾個有用的 wget 小技巧,可以讓你更加高效而靈活的使用 wget。

   1. $ wget -r -np -nd http://example.com/packages/

      這條命令可以下載 http://example.com 網站上 packages 目錄中的所有文件。其中,-np 的作用是不遍歷父目錄,-nd 表示不在本機重新創建目錄結構。
   2. $ wget -r -np -nd --accept=iso http://example.com/centos-5/i386/

      與上一條命令相似,但多加了一個 --accept=iso 選項,這指示 wget 僅下載 i386 目錄中所有擴展名為 iso 的文件。你也可以指定多個擴展名,只需用逗號分隔即可。
   3. $ wget -i filename.txt

      此命令常用於批量下載的情形,把所有需要下載文件的地址放到 filename.txt 中,然後 wget 就會自動為你下載所有文件了。
   4. $ wget -c http://example.com/really-big-file.iso

      這裡所指定的 -c 選項的作用為斷點續傳。
   5. $ wget -m -k (-H) http://www.example.com/

      該命令可用來鏡像一個網站,wget 將對鏈接進行轉換。如果網站中的圖像是放在另外的站點,那麼可以使用 -H 選項。

[via]
wget是一個Linux環境下用從World Wide Web上提取文件的工具,這是一個GPL許可證下的自由軟件,其作者為Hrvoje Niksic <hniksic@srce.hr>。wget支持HTTP和FTP協議,支持代理服務器和斷點續傳功能,能夠自動遞歸遠程主機的目錄,找到合乎條件的文件並將其下載到本地硬盤上;如果必要,wget將恰當地轉換頁面中的超級連接以在本地生成可瀏覽的鏡像。由沒有交互式界面,wget可在台運行,截獲並忽略HANGUP信號,因此在用戶推出登錄以,仍可繼續運行。通常,wget用成批量地下載Internet網站上的文件,或製作遠程網站的鏡像。

語法:
    wget [options] [URL-list]
URL地址格式說明:可以使用如下格式的URL:
    http://host[:port]/path
例如:
    http://example.com/
    ftp://ftp.example.com/xemacs-19.14.tar.gz
    ftp://username:password@host/dir/file
在最一種形式中,以URL編碼形式為FTP主機提供了用戶名和密碼(當然,也可以使用參數提供該信息,見)。

參數說明:
wget的參數較多,但大部分應用只需要如下幾個常用的參數:
    -r    遞歸;對HTTP主機,wget首先下載URL指定的文件,然(如果該文件是一個HTML文檔的話)遞歸下載該文件所引用(超級連接)的所有文件(遞歸深度由參數-l指定)。對FTP主機,該參數意味著要下載URL指定的目錄中的所有文件,遞歸方法與HTTP主機類似。

    -N    時間戳:該參數指定wget只下載更新的文件,也就是說,與本地目錄中的對應文件的長度和最修改日期一樣的文件將不被下載。

    -m    鏡像:相當同時使用-r和-N參數。

    -l    設置遞歸級數;默認為5。-l1相當不遞歸;-l0為無窮遞歸;注意,當遞歸深度增加時,文件數量將呈指數級增長。

    -t     設置重試次數。當連接中斷(或超時)時,wget將試圖重新連接。如果指定-t0,則重試次數設為無窮多。

    -c    指定斷點續傳功能。實際上,wget默認具有斷點續傳功能,只有當你使用別的ftp工具下載了某一文件的一部分,並希望wget接著完成此工作的時候,才需要指定此參數。

使用舉例:
    wget -m -l4 -t0 http://example.com/
將在本地硬盤建立http://example.com/的鏡像,鏡像文件存入當前目錄下一個名為example.com的子目錄中(你也可以使用-nH參數指定不建立該子目錄,而直接在當前目錄下建立鏡像的目錄結構),遞歸深度為4,重試次數為無窮(若連接出現問題,wget將堅韌不拔地永遠重試下去,知道任務完成!)

另外一些使用頻率稍低的參數如下:
    -A acclist / -R rejlist:
這兩個參數用指定wget接受或排除的文件擴展名,多個名稱之間用逗號隔開。例如,假設我們不想下載MPEG視頻影像文件和.AU聲音文件,可使用如下參數:
    -R mpg,mpeg,au

其它參數還有:
    -L     只擴展相對連接,該參數對抓取指定站點很有用,可以避免向宿主主機的其他目錄擴散。例如,某個人網站地址為:http://www.example.com/,使用如下命令行:
    wget -L http://www.example.com/~ppfl/
    則只提取該個人網站,而不涉及主機www.xys.org上的其他目錄。

    -k    轉換連接:HTML文件存盤時,將其中的非相對連接轉換成為相對連接。

    -X    在下載FTP主機上的文件時,排除若幹指定的目錄

另外,下面參數用設置wget的工作界面:
    -v    設置wget輸出詳細的工作信息。
    -q    設置wget不輸出任何信息。

如果我們已經在一個HTML文檔(或普通文本文檔)中存儲了所要提取的文件的連接,可以讓wget直接從該文件中提取信息,而不用在命令行中提供URL地址,參數格式為:
    -i filename
地址文件也可以不是HTML文檔,例如,一個普通的文本文件,其中有需要下載的URL列表即可。
我們可以用以下技巧提高下載速度:由Linux是一個多任務系統,我們可以同時運行多個wget進程以提高下載速度,例如,先下載某主頁文件(index.html),然將該文件所列出的所有地址分別用一個獨立的wget進程進行下載。

至其他的參數,可參考wget的man手冊頁,命令為:
    man wget
==============================
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 不追溯到起源目錄.
wget -t0 -c -nH -np -b -m -P /localdir http://example.com/mirrors/ftp.redhat.com -o wget.log 今天用wget一看那麼多的命令,先把它翻譯了一下,再到外邊搜到一些相關內容.

[ 本帖最後由 青翁道人 於 2009-3-4 10:32 編輯 ]
返回列表