HOWTO · Linux

如何在 Linux 中使用 Wget 命令

我们可以在 Linux 中使用 wget 命令从 Internet 上使用 HTTP、HTTPS 和 FTP 协议下载文件,有多种选项,如一次下载多个文件、在后台下载、限制带宽等。

本页内容

我们可以在 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>