Linux 中使用 Wget 下载文件

wget 是一个 Linux 命令行实用程序,用于从 Internet 下载文件和网页。 它支持多种互联网协议,包括 HTTP、HTTPS 和 FTP 来访问和检索文件。 我们可以使用 wget 命令的不同选项来执行各种任务。 wget 实用程序在速度较慢且不稳定的 Internet 连接上非常有用。 如果下载失败,wget 命令会一直尝试,直到检索到整个文件。

特征

  • 一次下载多个文件。
  • 定义下载速度和带宽限制。
  • 允许恢复失败的下载。
  • 下载完整的网站和 FTP 站点。
  • 支持用于加密下载的 SSL/TLS。
  • 通过代理下载文件。

在这篇文章中,我们将向我们展示 Linux 中使用 wget 命令下载文件。

先决条件

  • 在 云平台上运行 Linux 的服务器
  • 在我们的服务器上配置的 root 密码

创建 云服务器

首先,登录到我们的 云服务器。 创建一个新服务器,选择任何具有至少 1GB RAM 的 Linux 操作系统。 通过 SSH 连接到我们的云服务器并使用页面顶部突出显示的凭据登录。

在 Linux 中安装 wget

默认情况下,wget 包预装在所有主要的 Linux 操作系统上。 如果未安装,我们可以按照以下步骤进行安装。

对于 Debian 和 Ubuntu 操作系统,使用以下命令安装 wget:

apt-get install wget -y

对于 RHEL、CentOS、Rocky Linux 和 Fedora 操作系统,使用以下命令安装 wget:

dnf install wget -y

使用 wget 命令下载文件

使用 wget 命令下载文件的基本语法如下所示:

wget [option] [URL]

要下载单个文件,请运行以下命令:

wget https://repo.skype.com/latest/skypeforlinux-64.deb

这会将名为 skypeforlinux-64.deb 的文件下载到我们当前的工作目录:

Connecting to get.skype.com (get.skype.com)|52.174.193.75|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://repo.skype.com/latest/skypeforlinux-64.deb [following]
--2022-03-16 08:45:16--  https://repo.skype.com/latest/skypeforlinux-64.deb
Resolving repo.skype.com (repo.skype.com)... 23.50.252.171, 2405:200:1630:18af::1263, 2405:200:1630:189c::1263
Connecting to repo.skype.com (repo.skype.com)|23.50.252.171|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 140790360 (134M) [application/x-debian-package]
Saving to: ‘skypeforlinux-64.deb’

skypeforlinux-64.deb                100%[=================================================================>] 134.27M  2.10MB/s    in 64s     

2022-03-16 08:46:20 (2.09 MB/s) - ‘skypeforlinux-64.deb’ saved [140790360/140790360]

使用 wget 命令下载多个文件

我们还可以通过使用 wget 命令指定多个 URL 来一次下载多个文件。

wget http://ftp.gnu.org/gnu/wget/wget-1.11.4.tar.gz https://curl.se/download/curl-7.82.0.tar.gz

这将下载我们当前工作目录中的多个文件:

HTTP request sent, awaiting response... 200 OK
Length: 1475149 (1.4M) [application/x-gzip]
Saving to: ‘wget-1.11.4.tar.gz’

wget-1.11.4.tar.gz                  100%[=================================================================>]   1.41M   293KB/s    in 4.9s    

2022-03-16 08:51:01 (293 KB/s) - ‘wget-1.11.4.tar.gz’ saved [1475149/1475149]

--2022-03-16 08:51:01--  https://curl.se/download/curl-7.82.0.tar.gz
Resolving curl.se (curl.se)... 151.101.2.49, 151.101.66.49, 151.101.130.49, ...
Connecting to curl.se (curl.se)|151.101.2.49|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 4106857 (3.9M) [application/x-gzip]
Saving to: ‘curl-7.82.0.tar.gz’

curl-7.82.0.tar.gz                  100%[=================================================================>]   3.92M  3.26MB/s    in 1.2s    

2022-03-16 08:51:04 (3.26 MB/s) - ‘curl-7.82.0.tar.gz’ saved [4106857/4106857]

FINISHED --2022-03-16 08:51:04--
Total wall clock time: 15s
Downloaded: 2 files, 5.3M in 6.1s (891 KB/s)

下载具有不同名称的文件

通常,wget 命令会下载并保存一个原始名称的文件。 我们可以在 wget 命令中使用 -O 选项来以不同的名称保存文件。

wget -O wget.tar.gz http://ftp.gnu.org/gnu/wget/wget-1.11.4.tar.gz

这将下载文件并使用不同的名称保存:

Resolving ftp.gnu.org (ftp.gnu.org)... 209.51.188.20, 2001:470:142:3::b
Connecting to ftp.gnu.org (ftp.gnu.org)|209.51.188.20|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1475149 (1.4M) [application/x-gzip]
Saving to: ‘wget.tar.gz’

wget.tar.gz                         100%[=================================================================>]   1.41M   231KB/s    in 6.2s    

2022-03-16 08:55:27 (231 KB/s) - ‘wget.tar.gz’ saved [1475149/1475149]

将文件下载到指定位置

默认情况下,wget 命令会下载当前工作目录中的文件。 我们可以使用 -P 选项将文件下载到指定目录中:

wget -P /tmp/ http://ftp.gnu.org/gnu/wget/wget-1.11.4.tar.gz

输出:

Connecting to ftp.gnu.org (ftp.gnu.org)|209.51.188.20|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1475149 (1.4M) [application/x-gzip]
Saving to: ‘/tmp/wget-1.11.4.tar.gz.1’

wget-1.11.4.tar.gz.1                100%[=================================================================>]   1.41M   227KB/s    in 6.3s    

2022-03-16 08:58:07 (227 KB/s) - ‘/tmp/wget-1.11.4.tar.gz.1’ saved [1475149/1475149]

从一个文件下载多个文件

我们可以使用 -i 选项指定包含要下载的 URL 列表的文件。 首先,创建一个名为 download-list.txt 的文件:

nano download-list.txt

添加要从其中下载文件的所有 URL:

http://ftp.gnu.org/gnu/wget/wget-1.11.4.tar.gz
http://www.openssl.org/source/openssl-0.9.8h.tar.gz
https://curl.se/download/curl-7.82.0.tar.gz

保存并关闭文件,然后通过指定 download-list.txt 文件运行 wget 命令,如下所示:

wget -i download-list.txt

这将一一下载所有文件,如下所示:

Length: 1475149 (1.4M) [application/x-gzip]
Saving to: ‘wget-1.11.4.tar.gz’

wget-1.11.4.tar.gz                  100%[=================================================================>]   1.41M   142KB/s    in 10s     

2022-03-16 09:06:19 (143 KB/s) - ‘wget-1.11.4.tar.gz’ saved [1475149/1475149]

Length: 3439981 (3.3M) [application/x-gzip]
Saving to: ‘openssl-0.9.8h.tar.gz’

openssl-0.9.8h.tar.gz               100%[=================================================================>]   3.28M  4.44MB/s    in 0.7s    

2022-03-16 09:06:21 (4.44 MB/s) - ‘openssl-0.9.8h.tar.gz’ saved [3439981/3439981]

Length: 4106857 (3.9M) [application/x-gzip]
Saving to: ‘curl-7.82.0.tar.gz’

curl-7.82.0.tar.gz                  100%[=================================================================>]   3.92M  4.50MB/s    in 0.9s    

2022-03-16 09:06:22 (4.50 MB/s) - ‘curl-7.82.0.tar.gz’ saved [4106857/4106857]

FINISHED --2022-03-16 09:06:22--
Total wall clock time: 13s
Downloaded: 3 files, 8.6M in 12s (755 KB/s)

使用 wget 命令恢复未完成的下载

如果我们尝试下载一个大文件并且由于互联网连接缓慢或不稳定而停止,那么我们可以使用 -c 选项从中断处继续下载相同的文件。

wget -c https://curl.se/download/curl-7.82.0.tar.gz

输出:

--2022-03-16 09:11:11--  https://curl.se/download/curl-7.82.0.tar.gz
Resolving curl.se (curl.se)... 151.101.2.49, 151.101.66.49, 151.101.130.49, ...
Connecting to curl.se (curl.se)|151.101.2.49|:443... connected.
HTTP request sent, awaiting response... 206 Partial Content
Length: 4106857 (3.9M), 753031 (735K) remaining [application/x-gzip]
Saving to: ‘curl-7.82.0.tar.gz’

curl-7.82.0.tar.gz                  100%[+++++++++++++++++++++++++++++++++++++++++++++++++++++============>]   3.92M  4.23MB/s    in 0.2s    

2022-03-16 09:11:11 (4.23 MB/s) - ‘curl-7.82.0.tar.gz’ saved [4106857/4106857]

下载时忽略 SSL 证书检查

我们可以使用 –no-check-certificate 选项在通过 HTTPS 下载文件时忽略 SSL 证书检查。

wget --no-check-certificate https://curl.se/download/curl-7.82.0.tar.gz

输出:

--2022-03-16 09:14:07--  https://curl.se/download/curl-7.82.0.tar.gz
Resolving curl.se (curl.se)... 151.101.2.49, 151.101.66.49, 151.101.130.49, ...
Connecting to curl.se (curl.se)|151.101.2.49|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 4106857 (3.9M) [application/x-gzip]
Saving to: ‘curl-7.82.0.tar.gz’

curl-7.82.0.tar.gz                  100%[=================================================================>]   3.92M  4.40MB/s    in 0.9s    

2022-03-16 09:14:08 (4.40 MB/s) - ‘curl-7.82.0.tar.gz’ saved [4106857/4106857]

设置下载速度限制

wget 命令还允许我们对较慢的 Internet 连接设置速度限制。 我们可以使用 –limit-rate 选项来设置速度限制。

例如,要将速度限制设置为 10k,请运行以下命令:

wget -c --limit-rate=10k https://curl.se/download/curl-7.82.0.tar.gz

我们应该看到以下输出:

--2022-03-16 09:17:36--  https://curl.se/download/curl-7.82.0.tar.gz
Resolving curl.se (curl.se)... 151.101.2.49, 151.101.66.49, 151.101.130.49, ...
Connecting to curl.se (curl.se)|151.101.2.49|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 4106857 (3.9M) [application/x-gzip]
Saving to: ‘curl-7.82.0.tar.gz’

curl-7.82.0.tar.gz                    3%[=>                                                                ] 159.22K  10.0KB/s    eta 6m 26s

从受密码保护的 FTP 服务器下载文件

如果我们想从受密码保护的 FTP 服务器下载文件,wget 命令还允许我们指定用户名和密码。

我们可以使用以下语法从受密码保护的 FTP 服务器下载文件:

wget --ftp-user=username --ftp-password=password ftp://ftp.server.com/filename.tar.gz

创建整个网站的镜像

我们可以使用 -m 选项通过下载所有网站文件(包括 CSS、JavaScript 和图像)来创建网站的完整本地副本。

wget -m https://linuxbuz.com

如果我们想使用下载的网站进行本地浏览,我们可以使用 wget 命令的一些额外选项:

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

本文记录了,如何使用带有不同选项的 wget 命令从远程 URL 下载文件。 我们现在可以根据需要使用 wget 命令。

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发

请登录后发表评论