Linux wget 命令是一個命令行實用程序,用於通過 HTTP、HTTPS 和 FTP 協議從 Internet 下載文件。 wget 命令通常在大多數 Linux 發行版上默認可用,但如果您沒有安裝它,您可以使用發行版的包管理器下載它。
基於 Ubuntu / Debian 的發行版:(apt 和 apt-get 之間的區別)
sudo apt install wget
基於 Fedora 的發行版:
sudo dnf install wget OR sudo yum install wget
基於 Red Hat 的發行版:
sudo rpm install wget
基於 Arch Linux 的發行版:
sudo pacman -S wget
Linux wget特性及使用
Linux wget 命令具有以下對腳本有用的特性:
- 文件可以在後台下載
- 您可以輕鬆恢復中斷的下載
- 可以鏡像網站以進行本地瀏覽
- 您可以抓取網絡以查找損壞的鏈接
- 還有很多…
wget 命令的基本語法是:
wget <URL>
在 Linux 上使用 wget 命令下載文件
有沒有比自己做更好的學習方法?讓我們從 官方 Debian 下載頁面。 以下命令下載 Debian 10 Web 安裝 ISO。
wget https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-10.3.0-amd64-netinst.iso
Linux wget 命令所做的第一件事是查找並解析 URL。然後您將看到您連接到下載文件的服務器的詳細信息。最後,它顯示了文件下載的進度、速度和預計到達時間。
如果沒有選項,wget 命令只是根據服務器提供的文件名下載文件。但是,如果您想下載文件並以不同的名稱保存,您可以使用: -O
選項。
wget https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-10.3.0-amd64-netinst.iso -O debian.iso
Linuxwget 命令選項
現在您已經了解瞭如何下載文件以及 wget 命令的工作原理,讓我們看看如何在 Linux 上實際使用 wget 命令提供的選項。
1. 使用 wget 恢復中斷的下載
這個 wget -c
該選項允許您通過重複相同的命令來繼續或恢復中斷的下載。請參見下面的示例。
wget -c https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-10.3.0-amd64-netinst.iso
如果在上述下載過程中由於網絡斷開或鍵盤中斷導致下載停止,您可以在存儲部分下載文件的目錄中重複相同的命令。
Linux wget 命令從中斷處恢復下載。這在不穩定的網絡中特別有用,您只需重新運行 wget 命令即可恢復下載而不會丟失進度。
2.關閉wget輸出
因此,在大多數情況下不需要輸出。但是我怎樣才能避免這種輸出呢? 像大多數 Linux 命令一樣,wget 命令也提供了一個靜音輸出的選項。
wget -q <URL> OR wget -nv <URL>
這個 -q
該命令代表安靜並刪除所有輸出。這個 -nv
該選項表示非詳細信息,僅顯示需要顯示的消息(完成通知或錯誤)。
但是,上述命令選項存在問題。進度條也被隱藏了。這對於某些用例可能沒問題,但我想展示一下。
如何使用 Linux wget 將除進度條之外的所有輸出靜音?
wget 命令為我們提供了另一種選擇 --show-progress
什麼時候 --progress=bar:force
..
如果您的系統有最新的 wget 命令,您可以使用 show progress 選項來獲取進度條。如果您使用的是舊版本,則可能需要添加 progress = bar: force 選項。讓我們使用與上面相同的示例添加一個新選項。
wget -q --show-progress https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-10.3.0-amd64-netinst.iso
3.使用wget下載多個URL
您不僅可以一次下載一個文件,還可以通過簡單地指定文件中的所有 URL(每行一個 URL)來下載多個文件。
我們將使用 -i
將包含 URL 列表的文件傳遞給 wget 命令的選項。
wget -i <file name>
這將開始下載所有文件。您可以將此命令選項與上述命令選項結合使用以使輸出靜音。
4.使用wget下載整個網站
好吧,我首先講的是下載和保存整個網站,但我提到這是該命令的功能之一。立即了解如何操作。
wget 命令為下載或“鏡像”整個網站提供了出色的命令選項。這個 -m
選項(鏡像的縮寫)和配對 -k
您可以選擇將下載的 HTML 文件中的鏈接更改為指向本地頁面以獲取完整的離線網頁。這個 -p
選項還包括頁面要求,例如圖像和其他媒體,因此它們可以完全離線使用。
要下載網站,請運行以下命令:
wget -mk -p <URL>
此命令將開始一次下載您網站的每一頁。 因此,如果您正在處理具有數十萬頁的站點,請不要單獨使用此命令。
5.使用wget抓取404鏈接的網站
如果您有一個網站並且您正在遍歷整個網站以尋找可替換的斷開鏈接,這將特別有用。
有命令選項 --spider
逐頁、按 URL 抓取您的站點,並找到解決 404 錯誤的鏈接。將再次使用 -r
(遞歸 URL 抓取)和 -l
(遞歸爬蟲級別)保持爬蟲爬取鏈接的選項。
另外,添加命令選項 -o
(小寫 o)將 wget 輸出保存到此處指定的日誌文件。
wget -r -l 10 --spider www.google.com -o google.log
當您運行上述命令時,您可以期望它幾乎永遠運行,因為 Google 有很多鏈接。運行幾秒鐘後,該命令生成了一個 1 MB 的文本文件(順便說一下,這是一個巨大的基本文本文件)。
6.後台運行下載
如果您正在執行耗時的多文件下載,則將設備保持在後台是沒有意義的。相反,您可以使用 wget 命令在後台傳遞它 -b
..
wget -b https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-10.3.0-amd64-netinst.iso

如果您不希望 wget 命令在後台下載文件,該命令會提供您可以立即退出的進程 ID。
結論是
Linux wget 命令可用於多種用途,而不僅僅是下載文件。您應該已經了解了這個看似簡單的命令的可能性。檢查命令選項並了解有關此命令可以做什麼的很多信息。
請記住,Linux 的 man 命令始終可以幫助執行這些命令。 --help
選項。