參考資料:
https://www.cnblogs.com/ftl1012/p/9265699.html
https://www.cnblogs.com/lsdb/p/7171779.html
curl和wget都是Linux下常用的下載工具,區別在於,curl可以自定義各種請求參數,所以在模擬web請求方面更擅長;而wget由於支持ftp和遞歸(recursive)下載,所以在下載文件方面更擅長。類比的話curl好比瀏覽器,而wget是迅雷。
因為計網實驗的原因接觸了wget,之前雖也有所耳聞但是卻只知有這個下載工具,不知怎么使用,有什么功能。下面總結一下學到的wget常用的命令,以便日后查閱,有需求時深入學習。
首先給出最實用的幾個命令:
wget -c + URL或者文件名 # 支持斷點續傳的下載 wget -b + URL或者文件名 # 后台下載 wget -i list # 預先給定URL列表,下載list中URL對應的文件 wget -x -r -A "*.txt" + URL 一般為目錄 # 遞歸的下載目標目錄下所有的目錄和文件,並在本地創建對應文件目錄 wget -nd -r -A "*.txt" + URL 一般為目錄 # 遞歸的下載目標目錄下所有的目錄和文件,並不在本地創建對應文件目錄 wget –x –r –R "*.txt" + URL 一般為目錄 # 遞歸下載除某后綴之外的文件,並創建目錄結構 wget –nd –r –R "*.txt" + URL 一般為目錄 # 遞歸下載除某后綴之外的文件,並不創建目錄結構 wget –m + URL 一般為目錄 # 創建鏡像,即完全copy
這里補充一下遞歸下載的概念,這是一個很重要的特性。我們經常會聽到遞歸搜索,遞歸下載。這里的遞歸指的是在當前目錄和所有子目錄。如果不使用遞歸下載,則只會下載當前文件夾下的文件,而忽略當前文件夾下的目錄。也就是說子目錄和子目錄下的文件都不會被下載。
下面羅列一些wget命令的常用參數:
參數 |
參數含義 |
‐‐help |
顯示 wget 的聯機幫助,本表中僅僅給出了部分參數的使用,更詳 細的參數使用請查閱聯機幫助 |
‐A |
表示僅接受指定的文件類型,如‐A "*.gif"將僅下載 gif 圖片,如果 有多個允許可以使用“,”分開 |
‐b |
讓 wget 在后台運行,記錄文件寫在當前目錄下"wget‐log"文件中 |
‐t [nuber of times] |
當 wget 無法與服務器建立連接時,嘗試連接多少次。比如"‐t 120" 表示嘗試 120 次。當這一項為"0"的時候,指定嘗試無窮多次直到 連接成功為止 |
‐c |
斷點續傳,這也是個非常有用的設置,特別當下載比較大的文件 的時候,如果中途意外中斷,那么連接恢復的時候會從上次沒傳 完的地方接着傳,而不是又從頭開始 |
‐T [number of sec] |
超時時間。如"‐T 120"表示如 120 秒以后遠程服務器沒有發過來數 據,就重新嘗試連接。如果網絡速度比較快,這個時間可以設置 的短些 |
‐w [number of seco] |
在兩次嘗試之間等待多少秒,比如"‐w 100"表示兩次嘗試之間等待 100 秒 |
‐Q [byetes] |
限制下載文件的總大小不能超過多少,如"‐Q2k"表示不能超過 2K 字節,"‐Q3m"表示不能超過 3M 字節 |
‐nd |
不下載目錄結構,把從服務器所有指定目錄下載的文件都堆到當 前目錄里 |
‐x |
與"‐nd"設置剛好相反,如"wget ‐x http://a.b.c"將創建在當前目錄 下創建"a.b.c"子目錄,然后按照服務器目錄結構一級一級建下去, 直到所有的文件都傳完 |
‐nH |
不創建以目標主機域名為目錄名的目錄,將目標主機的目錄結構 直接下到當前目錄下 |
‐‐http‐user=xxx |
如果 Web 服務器需要指定用戶名和口令,用這兩項來設定 |
‐‐http‐passwd=xxx |
|
‐i download_list |
下載文件“download_list”中列出的所有 URL |
‐k |
將鏈接轉換為本地連接 |
‐‐proxy‐user=xxx |
如果代理服務器需要輸入用戶名和口令,使用這兩個選項 |
‐‐proxy‐passwd=xxx |
|
‐r |
‐‐recursive specify recursive download |
‐R |
指定拒絕的文件類型,如‐R "*.gif"將不下載 gif 圖片,如果有多個 不允許,可以使用“,”分開 |
‐l [depth] |
下載遠程服務器目錄結構的深度,例如"‐l 5"下載目錄深度小於或 者等於 5 以內的目錄結構或者文件 |
‐m |
做站點鏡像時的選項,如果你想做一個站點的鏡像 |
‐np |
只下載目標站點指定目錄及其子目錄的內容 |