如何在 Linux 中使用 Wget 命令

Suraj Joshi 2023年1月30日
  1. 檢查 Linux 是否安裝了 wget
  2. wget 命令的語法
  3. wget 下載檔案
  4. 使用自定義檔名儲存使用 wget 下載的檔案
  5. 使用 wget 將下載的檔案儲存到特定的目錄下
  6. 使用 wget 指定下載速度
  7. 使用 wget 恢復下載
  8. 在後臺使用 wget 下載檔案
  9. 改變 wget 的使用者代理
  10. 使用 wget 同時下載多個檔案
  11. 使用 wget 命令通過 FTP 下載檔案
  12. 使用 wget 建立網站的副本
  13. 使用 Wget 時跳過證書檢查
如何在 Linux 中使用 Wget 命令

我們可以在 Linux 中使用 wget 命令通過 HTTP、HTTPS 和 FTP 協議從網際網路上下載檔案,並提供多種選項,如一次下載多個檔案、在後臺下載、限制頻寬等。

檢查 Linux 是否安裝了 wget

我們只要在終端上輸入 wget 命令,就可以檢查系統中是否安裝了 wget

如果 wget 安裝在我們的系統中,我們得到的輸出是:

wget: missing URL
Usage: wget [OPTION]... [URL]...

Try 'wget --help' for more options.

如果 wget 沒有安裝在我們的系統中,我們得到的輸出為:

Command 'wget' not found, but can be installed with:

sudo snap install wget

如果系統中沒有安裝 wget,我們可以使用下面的命令進行安裝。

在 Ubuntu 和 Debian 中安裝 wget

sudo apt install wget

在 CentOS 和 Fedora 中安裝 wget

sudo yum install wget

wget 命令的語法

wget [options] [url]

options 是各種可用於定製下載過程的選項,url 是指需要下載或同步檔案的 URL

wget 下載檔案

要使用 wget 命令下載檔案,我們只需在 wget 後面指定檔案倉庫的 URL 即可。

wget https://bloximages.newyork1.vip.townnews.com/redandblack.com/content/tncms/assets/v3/editorial/4/59/45940eb2-5403-11e9-a843-db0e4491cc90/5ca13d8453042.image.jpg

輸出:

--2020-09-28 19:29:15--  https://bloximages.newyork1.vip.townnews.com/redandblack.com/content/tncms/assets/v3/editorial/4/59/45940eb2-5403-11e9-a843-db0e4491cc90/5ca13d8453042.image.jpg
Resolving bloximages.newyork1.vip.townnews.com (bloximages.newyork1.vip.townnews.com)... 104.18.130.43, 104.18.131.43
Connecting to bloximages.newyork1.vip.townnews.com (bloximages.newyork1.vip.townnews.com)|104.18.130.43|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 33241 (32K) [image/jpeg]
Saving to: '5ca13d8453042.image.jpg'

5ca13d8453042.image 100%[===================>]  32.46K  --.-KB/s    in 0.003s  

2020-09-28 19:29:15 (11.1 MB/s) - '5ca13d8453042.image.jpg' saved [33241/33241]

它在給定的 URL 下載影象檔案,然後將下載的檔案儲存在我們當前的工作目錄中。

該命令首先解析 URL 的 IP 地址,然後開始下載。我們也可以在終端中看到下載進度條。

如果我們不想在終端中看到任何輸出,可以在 wget 命令中使用 -q 選項。

使用自定義檔名儲存使用 wget 下載的檔案

預設情況下,下載的檔名稱與網路上的相同。如果我們想用不同的檔名儲存檔案,我們可以在 -O 標誌後指定檔名。

wget -O linux.jpg https://bloximages.newyork1.vip.townnews.com/redandblack.com/content/tncms/assets/v3/editorial/4/59/45940eb2-5403-11e9-a843-db0e4491cc90/5ca13d8453042.image.jpg

它將下載的檔案儲存在我們當前的工作目錄中,檔名為 linux.jpg

使用 wget 將下載的檔案儲存到特定的目錄下

預設情況下,所有下載的檔案都會儲存在當前的工作目錄中。要將下載的檔案儲存在特定的目錄中,我們使用 -P 選項,並在後面加上需要儲存下載檔案的目錄位置。

wget -P Downloads/Linux_Images https://bloximages.newyork1.vip.townnews.com/redandblack.com/content/tncms/assets/v3/editorial/4/59/45940eb2-5403-11e9-a843-db0e4491cc90/5ca13d8453042.image.jpg

它將下載的圖片儲存在下載目錄下的 Linux_Images 目錄中。

使用 wget 指定下載速度

如果我們不想使用所有可用的頻寬來使用 wget 下載檔案,則可以使用 --limit-rate 選項來限制檔案的下載速度。

wget -P --limit-rate=5m https://bloximages.newyork1.vip.townnews.com/redandblack.com/content/tncms/assets/v3/editorial/4/59/45940eb2-5403-11e9-a843-db0e4491cc90/5ca13d8453042.image.jpg

它將下載速度限制為 5mb。

使用 wget 恢復下載

如果我們的網路連線在下載一個大檔案的過程中突然中斷,重新開始下載檔案將是一項繁瑣的工作。在這種情況下,我們可以使用 -c 選項恢復下載。

wget -c https://bloximages.newyork1.vip.townnews.com/redandblack.com/content/tncms/assets/v3/editorial/4/59/45940eb2-5403-11e9-a843-db0e4491cc90/5ca13d8453042.image.jpg

在某些情況下,伺服器可能不支援恢復下載,在這種情況下,下載將從頭開始。

在後臺使用 wget 下載檔案

要在後臺使用 wget 下載檔案,我們在命令中新增 -b 選項。

wget -b https://releases.ubuntu.com/20.04/ubuntu-20.04.1-desktop-amd64.iso

它將在後臺下載 Ubuntu 20.04 映象檔案。

要檢視檔案的下載狀態,我們使用以下命令。

tail -f wget-log

改變 wget 的使用者代理

在某些情況下,伺服器可能會阻止 wget 使用者代理。在這種情況下,我們可以使用 -U 選項來模擬不同的瀏覽器。

get --user-agent="Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0" <url>

在這種情況下,Mozilla 68 將從 <url> 中請求檔案。

使用 wget 同時下載多個檔案

要使用 wget 下載多個檔案,我們製作一個 .txt,在單獨的一行上列出要下載的每個檔案的 URL。然後我們使用 wget 命令,在 -i 選項後面加上包含 URLs 的檔案路徑。

wget -i files.txt

這將從 files.txt 檔案中指定的 URL 下載所有檔案。

使用 wget 命令通過 FTP 下載檔案

要使用 wget 命令通過 FTP 下載檔案,我們使用 --ftp-user 選項指定使用者名稱,使用 --ftp-password 選項指定密碼。

wget --ftp-user=username --ftp-password=password <url>

它使用 FTP 協議從指定的 URL 下載檔案。

使用 wget 建立網站的副本

要使用 wget 建立一個網站的副本,我們使用 -m 選項,後面跟著要複製的 URL。

wget -m https://abc.com

這將通過下載網站所需的所有內部連結和靜態檔案來建立一個 abc.com 的副本。

如果我們想執行下載的網站,我們還需要新增 -k-p 選項。

wget -m -k -p https://abc.com

使用 Wget 時跳過證書檢查

有時,我們需要從主機上下載一個檔案,但沒有有效的 SSL 證書,使用 HTTPS 協議。在這種情況下,我們使用 --no-check-certificate 選項來跳過證書檢查。

wget --no-check-certificate <url>
作者: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn