GNU Wget 是一个用于从网络下载文件的命令行实用程序。使用 Wget,您可以使用 HTTP、HTTPS 和 FTP 协议下载文件。 Wget 提供了许多选项,允许您下载多个文件、恢复下载、限制带宽、递归下载、后台下载、镜像网站等等。
本文展示了如何使用wget
通过实际示例和最常见选项的详细解释来了解命令。
安装 Wget#
如今,大多数 Linux 发行版都预装了 wget 软件包。
要检查您的系统上是否安装了 Wget 软件包,请打开控制台,输入wget
,然后按 Enter 键。如果安装了wget,系统会打印wget: missing URL
。否则会打印wget command not found
.
If wget
尚未安装,您可以使用发行版的包管理器轻松安装它。
在 Ubuntu 和 Debian 上安装 Wget#
sudo apt install wget
在 CentOS 和 Fedora 上安装 Wget#
sudo yum install wget
Wget 命令语法#
在讨论如何使用之前wget
命令,让我们首先回顾一下基本语法。
The wget
实用表达式采用以下形式:
-
options
- The wget 选项
-
url
- 您要下载或同步的文件或目录的 URL。
如何下载文件wget
#
以最简单的形式,在没有任何选项的情况下使用时,wget
会将[url]中指定的资源下载到当前目录。
在以下示例中,我们正在下载 Linux 内核 tar 存档:
wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.17.2.tar.xz
从上图中可以看出,wget
首先解析域的 IP 地址,然后连接到远程服务器并开始传输。
下载过程中,wget
显示进度条以及文件名、文件大小、下载速度和完成下载的预计时间。下载完成后,您可以在您的文件夹中找到下载的文件当前工作目录
.
要关闭输出,请使用-q
option.
如果文件已经存在,wget
将添加.N
(数字)位于文件名末尾。
以不同的名称保存下载的文件#
要将下载的文件保存在不同的名称下,请传递-O
选项后跟所选名称:
wget -O latest-hugo.zip https://github.com/gohugoio/hugo/archive/master.zip
上面的命令将保存最新的hugo来自 GitHub 的 zip 文件为latest-hugo.zip
而不是它原来的名字。
下载文件到特定目录#
默认情况下,wget
将把下载的文件保存在当前工作目录中。要将文件保存到特定位置,请使用-P
option:
wget -P /mnt/iso http://mirrors.mit.edu/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1804.iso
上面的命令告诉我们wget
将 CentOS 7 iso 文件保存到/mnt/iso
目录。
限制下载速度#
要限制下载速度,请使用--limit-rate
选项。默认情况下,速度以字节/秒为单位测量。附加k
以千字节为单位,m
兆字节,以及g
千兆字节。
以下命令将下载 Go 二进制文件并将下载速度限制为 1MB:
wget --limit-rate=1m https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz
当您不想要时此选项很有用wget
消耗所有可用带宽。
恢复下载#
您可以使用以下命令恢复下载-c
选项。如果您的连接在下载大文件期间断开,那么您可以继续上一个文件,而不是从头开始下载,这非常有用。
在以下示例中,我们将恢复 Ubuntu 18.04 iso 文件的下载:
wget -c http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso
如果远程服务器不支持断点续传,wget
将从头开始下载并覆盖现有文件。
后台下载#
要在后台下载,请使用-b
选项。在以下示例中,我们在后台下载 OpenSuse iso 文件:
wget -b https://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-DVD-x86_64-Current.iso
默认情况下,输出被重定向到wget-log
当前目录中的文件。要查看下载状态,请使用tail命令:
tail -f wget-log
更改 Wget 用户代理#
有时,在下载文件时,远程服务器可能会被设置为阻止 Wget 用户代理。在这种情况下,要模拟不同的浏览器,请传递-U
option.
wget --user-agent="Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0" http://wget-forbidden.com/
上面的命令将模拟 Firefox 60 请求页面wget-forbidden.com
下载多个文件#
如果您想一次下载多个文件,请使用-i
选项后跟包含要下载的 URL 列表的本地或外部文件的路径。每个 URL 需要单独占一行。
以下示例显示如何使用在中指定的 URL 下载 Arch Linux、Debian 和 Fedora iso 文件linux-distros.txt
file:
wget -i linux-distros.txt
linux发行版.txt
http://mirrors.edge.kernel.org/archlinux/iso/2018.06.01/archlinux-2018.06.01-x86_64.iso
https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-9.4.0-amd64-netinst.iso
https://download.fedoraproject.org/pub/fedora/linux/releases/28/Server/x86_64/iso/Fedora-Server-dvd-x86_64-28-1.1.iso
如果您指定-
作为文件名,URL 将从标准输入中读取。
通过FTP下载#
要从受密码保护的 FTP 服务器下载文件,请指定用户名和密码,如下所示:
wget --ftp-user=FTP_USERNAME --ftp-password=FTP_PASSWORD ftp://ftp.example.com/filename.tar.gz
创建网站的镜像#
创建网站的镜像wget
, 使用-m
选项。这将通过跟踪和下载所有内部链接以及网站资源(JavaScript、CSS、图像)来创建网站的完整本地副本。
wget -m https://example.com
如果您想使用下载的网站进行本地浏览,则需要向上面的命令传递一些额外的参数。
wget -m -k -p https://example.com
The -k
选项将导致wget
转换下载文档中的链接,使其适合本地查看。这-p
选项会告诉你wget
下载显示 HTML 页面所需的所有文件。
跳过证书检查#
如果您想通过 HTTPS 从具有无效 SSL 证书的主机下载文件,请使用--no-check-certificate
option:
wget --no-check-certificate https://domain-with-invalid-ss.com
下载到标准输出#
在下面的示例中,wget
会悄悄地(旗帜-q
) 下载最新的 WordPress 版本并将其输出到 stdout ( flag-O -
)并将其通过管道传输到tar
实用程序,它将把存档解压到/var/www
目录。
wget -q -O - "http://wordpress.org/latest.tar.gz" | tar -xzf - -C /var/www
结论#
With wget
,您可以下载多个文件、恢复部分下载、镜像网站以及根据您的需要组合 Wget 选项。
要了解有关 Wget 的更多信息,请访问GNU wget 手册
page.