wget
是一個可以從網絡上下載文件的免費實用程序,它的工作原理是從 Internet 上獲取數據,并將其保存到本地文件中或顯示在你的終端上。
這實際上也是大家所使用的瀏覽器所做的,例如 Firefox 或 Chrome,其實在內部也是調用了 wget
程序進行數據下載。
今天給大家介紹 8 個 wget
命令常見使用方式,希望能對小伙伴們有所幫助。1. 使用 wget 命令下載文件
你可以使用wget
命令來下載指定鏈接的文件。默認情況下,下載的文件將保存到當前工作目錄中的同名文件中。$wgethttp://www.lxlinux.net --2021-09-201747--http://www.lxlinux.net/ Resolvingwww.lxlinux.net...93.184.216.34,260622024825c8:1946 Connectingtowww.lxlinux.net|93.184.216.34|:80...connected. HTTPrequestsent,awaitingresponse...200OK Length:1256(1.2K)[text/html] Savingto:'index.html' 如果你不想將下載的文件保存在本地,而只是想將其顯示在標準輸出(stdout)里,可以使用
--output-document
選項,同時后面再跟上一個 -
號。$wgethttp://www.lxlinux.net--output-document-|head-n4
--output-document
選項(或者更簡便,直接使用 -O
即可):$wgethttp://www.lxlinux.net--output-documentnewfile.html
2. 斷點續傳
如果你要下載的文件非常大,因為網絡的原因有可能出現一次性無法下載完全的情況。如果每次都要重新下載,那么都不知道要等到猴年馬月。 這種情況下,就可以使用--continue
選項(或者 -c
)實現斷點續傳。也就是說,如果因為各種原因導致下載中斷,使用了這個選項,就可以繼續上次的下載,而不需要重新進行下載。$wget--continuehttps://www.lxlinux.net/linux-distro.iso
3. 下載一系列文件
如果你下載的不是一個大文件,而是需要很多個小文件,那么wget
命令也可以幫你輕松實現。
但是,這里還需要使用一些 bash 語法來實現目的。一般來講,這些文件的名稱都有一定的規律,比如:file_1.txt,file_2.txt,file_3.txt,等等,那么你就需要使用這樣的命令:$wgethttp://www.lxlinux.net/file_{1..4}.txt
4. 鏡像整個站點
如果你想對某個網站進行整站下載,包括其目錄結構,那么你就需要使用--mirror
選項。
這個選項等同于 --recursive --level inf --timestamping --no-remove-listing
,這意味著它是無限遞歸的,因此你可以下載到指定域上的所有內容。
如果你使用 wget
存檔站點,那么這些選項 --no-cookies --page-requisites --convert-links
也可用于確保每個頁面都是最新的、最完整的。5. 修改 HTML 請求標頭
學過網絡通訊的小伙伴都知道,HTTP 數據包里包含了非常多的元素。其中,HTTP 標頭是數據包初始的組成部分。 當你使用瀏覽器瀏覽網頁時,你的瀏覽器會向服務器發送 HTTP 請求標頭。具體發了些什么東西呢?可以使用--debug
選項查看 wget
每次請求發送的標頭信息:$wget--debugwww.lxlinux.net ---requestbegin--- GET/HTTP/1.1 User-Agent:Wget/1.19.5(linux-gnu) Accept:*/* Accept-Encoding:identity Host:www.lxlinux.net Connection:Keep-Alive ---requestend--- 你可以使用
--header
選項修改請求標頭。為什么要這么做呢?其實有很多使用場景的。例如,有時候為了測試,需要模擬特定的瀏覽器發出的請求。
比如,你想模擬 Edge 瀏覽器發出來的請求,可以這樣操作:$wget--debug--header="User-Agent:Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/91.0.4472.124Safari/537.36Edg/91.0.864.59"http://www.lxlinux.net 除此之外,你還可以偽裝成特定的移動設備(比如 iPhone ):
$wget--debug --header="User-Agent:Mozilla/5.0(iPhone;CPUiPhoneOS13_5_1likeMacOSX)AppleWebKit/605.1.15(KHTML,likeGecko)Version/13.1.1Mobile/15E148Safari/604.1" HTTP:// www.lxlinux.net
6. 查看響應標頭
與瀏覽器請求發送標頭信息的方式相同,標頭信息也包含在響應中。同樣地,你可以使用--debug
選項查看響應標頭:$wget--debugwww.lxlinux.net [...] ---responsebegin--- HTTP/1.1200OK Accept-Ranges:bytes Age:188102 Cache-Control:max-age=604800 Content-Type:text/html;charset=UTF-8 Etag:"3147526947" Server:ECS(sab/574F) Vary:Accept-Encoding X-Cache:HIT Content-Length:1256 ---responseend--- 200OK Registeredsocket3forpersistentreuse. URIcontentencoding='UTF-8' Length:1256(1.2K)[text/html] Savingto:'index.html'
7. 響應 301 響應
熟悉網絡協議的都知道,200 響應碼意味著一切都按預期進行。而 301 響應則意味著 URL 已經指向不同的網站。 這種情況下,如果你需要下載文件,那么就需要使用wget
的重定向功能。所以,如果你遇到 301 響應時,就需要使用 --max-redirect
選項。
如果你不想要重定向,那么可以將 --max-redirect
設置為 0 。$wget--max-redirect0http://www.lxlinux.net --2021-09-211135--http://www.lxlinux.net/ Resolvingwww.lxlinux.net...192.0.43.8,200188:8 Connectingtowww.lxlinux.net|192.0.43.8|:80...connected. HTTPrequestsent,awaitingresponse...301MovedPermanently Location:https://www.www.lxlinux.net/[following] 0redirectionsexceeded. 或者,你還可以將其設置為其他數字以控制
wget
跟隨的重定向數量。8. 展開短鏈接
有時候,我們需要將一個長鏈接轉為短鏈接,例如在文本框里填寫信息時,有時候文本框對字符長度有限制,這時短鏈就可以大大減少字符數。 除了使用第三方平臺,其實我們可以直接使用wget
命令來將短鏈接還原為長鏈接。這里依然使用 --max-redirect
選項:$wget--max-redirect0"https://bit.ly/2yDyS4T" --2021-09-211104--https://bit.ly/2yDyS4T Resolvingbit.ly...67.199.248.10,67.199.248.11 Connectingtobit.ly|67.199.248.10|:443...connected. HTTPrequestsent,awaitingresponse...301MovedPermanently Location:http://www.lxlinux.net/[following] 0redirectionsexceeded. 輸出的倒數第二行,在 Location 部分,后面你就看到了短鏈展開之后的真面目。
審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
命令
+關注
關注
5文章
683瀏覽量
22011 -
wget
+關注
關注
0文章
5瀏覽量
2141
原文標題:wget命令8種實用用法
文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
使用curl+wget抓取網頁方法
Linux抓取網頁,簡單方法是直接通過 curl 或 wget 兩種命令。curl 和 wget 命令,目前已經支持Linux和Window
發表于 02-25 09:54
是否可以使用wget中包含的no-check-certificate命令?
嗨,
我是 MMISCOOL 的新手,剛開始研究它。我注意到它有 wget 但要連接到 SSL,設備需要有 SSL 證書。我感興趣的是我是否可以使用 wget 中包含的 --no-check-certificate 命令?
發表于 04-26 08:52
手機NFC的六種實用用法
每當新機發布時,相信不少小伙伴除了會關注手機的性能、拍照、續航、價格之外,而且還會關注手機是否還帶NFC功能。隨著科技發展,現在手機里的NFC功能已經多達六種了,接下來筆者就來告訴大家NFC究竟那六種實用的用法。
命令行工具Kubectl的別樣用法
? kubectl 是 K8s 官方附帶的命令行工具,可以方便的操作 K8s 集群。這篇文章主要介紹一些 kubectl 的別樣用法,希望讀者有一定基礎的 K
Ping命令的7個基礎用法
IT行業中ping命令經常被用到,今天整理了一下關于網絡基礎知識中的網絡命令ping命令在項目中是使用頻率最高的,一般我們用的都是它的基本功能,今天和大家來詳細看下Ping命令的7個基
模擬初始狀態相關的.ic和.save命令用法
.step 和 .meas 命令用法。本文將繼續探討 LTspice 仿真命令,介紹 .ic 和 .save 命令用法,在評估開關電源時,它
Linux wget命令詳解
GNU Wget是一個命令行程序,用于從Web下載文件。Wget可以讓您可以使用HTTP,HTTPS和FTP協議下載文件。
linux常用命令及用法
Linux是一種開源的操作系統,它以穩定、高效和安全的特點受到廣大用戶的喜愛。掌握Linux的常用命令及其用法對于操作系統的管理和開發都至關重要。本文將詳盡、詳實、細致地介紹Linux常用命令
Linux lsof命令的基本用法
在 linux 系統中,一切皆文件。通過文件不僅僅可以訪問常規數據,還可以訪問網絡連接和硬件。所以 lsof 命令不僅可以查看進程打開的文件、目錄,還可以查看進程監聽的端口等 socket 相關的信息。本文將介紹 lsof 命令的基本用
評論