linux中的wget命令与示例

2022-06-02 15:58:31 浏览数 (1)

GNU Wget 是一个用于从 Web 下载文件的命令行应用程序。使用 Wget,你可以使用 HTTP、HTTPS 和 FTP 协议下载文件。Wget 提供了许多选项,允许你下载多个文件、恢复下载、限制带宽、递归下载、在后台下载、镜像网站等等。

本文wget通过实际示例和最常用选项的详细说明展示了如何使用该命令。

安装 Wget

目前大多数 Linux 发行版都预装了 wget 软件包。

要检查你的系统上是否安装了 Wget 软件包,请打开你的控制台,键入wget,然后按 Enter。如果你安装了 wget,系统会打印wget: missing URL。否则,它将打印

代码语言:javascript复制
> wget command not found

如果wget未安装,你可以使用发行版的包管理器轻松安装它。

在 Ubuntu 和 Debian 上安装 Wget

代码语言:javascript复制
> sudo apt install wget

在 CentOS 和 Fedora 上安装 Wget

代码语言:javascript复制
> yum install wget -y

Wget 命令语法

在讨论如何使用该wget命令之前,让我们先回顾一下基本语法。

wget应用程序的表达式采用以下形式:

代码语言:javascript复制
> wget [options] [url]

复制

  • options- Wget 选项
  • url - 要下载或同步的文件或目录的 URL。

如何下载文件 wget

在最简单的形式中,当不带任何选项使用时,wget会将 [url] 中指定的资源下载到当前目录。

在以下示例中,我们正在下载 Linux 内核 tar 存档:

代码语言:javascript复制
> wget https://rumenz.com/static/v/v.mp4

image-20211012220109912

从上图中可以看出,wget首先解析域的 IP 地址,然后连接到远程服务器并开始传输。

在下载过程中,会wget在文件名、文件大小、下载速度和预计完成下载时间旁边显示进度条。下载完成后,你可以在当前工作目录中找到下载的文件 。

要关闭输出,请使用该-q选项。

如果文件已经存在,wget.N在文件名的末尾添加(数字)。

以不同的名称保存下载的文件

要以不同的名称保存下载的文件,请传递-O后跟所选名称的选项:

代码语言:javascript复制
> wget -O rumenz.mp4 https://rumenz.com/static/v/v.mp4

将文件下载到特定目录

默认情况下,wget会将下载的文件保存在当前工作目录中。要将文件保存到特定位置,请使用以下-P选项:

代码语言:javascript复制
> wget -P /tmp/rumenz https://rumenz.com/static/v/v.mp4

上面的命令告诉wgetv.mp4文件保存到/tmp/rumenz目录中。

限制下载速度

要限制下载速度,请使用该--limit-rate选项。默认情况下,速度以字节/秒为单位。附加k千字节、m兆字节和g千兆字节。

以下命令将下载 Go 二进制文件并将下载速度限制为 1MB:

代码语言:javascript复制
> wget --limit-rate=1m https://golang.org/dl/go1.17.2.linux-amd64.tar.gz

当你不想wget消耗所有可用带宽时,此选项很有用。

恢复下载

你可以使用该-c选项继续下载。如果在下载大文件期间连接断开,这将非常有用,你可以继续上一个下载而不是从头开始下载。

在以下示例中,我们将继续下载go1.17.2.linux-amd64.tar.gz文件:

代码语言:javascript复制
> wget -c https://golang.org/dl/go1.17.2.linux-amd64.tar.gz

如果远程服务器不支持恢复下载,wget将从头开始下载并覆盖现有文件。

后台下载

要在后台下载,请使用该-b选项。在以下示例中,我们在后台下载 go1.17.2.linux-amd64.tar.gz 文件:

代码语言:javascript复制
> wget -b https://golang.org/dl/go1.17.2.linux-amd64.tar.gz

默认情况下,输出被重定向到wget-log当前目录中的文件。要查看下载状态,请使用以下tail 命令:

tail -f wget-log

更改 Wget 用户代理

有时在下载文件时,远程服务器可能会设置为阻止 Wget User-Agent。在这种情况下,要模拟不同的浏览器,请传递-U选项。

代码语言:javascript复制
> wget --user-agent="Mozilla/0 (X11; Linux x86_64; rv:0) Gecko/20100101 Firefox/0" http://wget-forbidden.com/

上面的命令将模拟 Firefox 60 从 wget-forbidden.com

下载多个文件

如果你想一次下载多个文件,请使用该-i选项后跟上包含要下载的 URL 列表的本地或外部文件的路径。每个 URL 都需要在单独的行上。

以下示例显示了如何使用文件中指定的 URL 下载 v.oggv.mp4文件:

代码语言:javascript复制
> wget -i rumenz.txt
代码语言:javascript复制
> cat rumenz.txt
https://rumenz.com/static/v/v.ogg
https://rumenz.com/static/v/v.mp4

通过FTP下载

要从受密码保护的 FTP 服务器下载文件,请指定用户名和密码,如下所示:

代码语言:javascript复制
> wget --ftp-user=FTP_USERNAME --ftp-password=FTP_PASSWORD ftp://ftp.example.com/filename.tar.gz

创建网站的镜像

要使用 来创建网站的镜像wget,请使用该-m选项。这将通过关注和下载所有内部链接以及网站资源(JavaScript、CSS、图像)来创建网站的完整本地副本。

代码语言:javascript复制
> wget -m https://example.com

如果要使用下载的网站进行本地浏览,则需要向上述命令传递一些额外的参数。

代码语言:javascript复制
> wget -m -k -p https://example.com

-k选项将导致wget转换下载文档中的链接,使其适合本地查看。该-p选项将告诉wget下载显示 HTML 页面所需的所有文件。

跳过证书检查

如果要通过 HTTPS 从具有无效 SSL 证书的主机下载文件,请使用以下

代码语言:javascript复制
--no-check-certificate
代码语言:javascript复制
> wget --no-check-certificate https://domain-with-invalid-ss.com

下载到标准输出

在下面的示例中,wget将安静地 ( flag -q) 下载最新的 WordPress 版本并将其输出到 stdout ( flag -O -) 并将其通过管道传输到tar应用程序,应用程序会将存档解压缩到/var/www目录中。

代码语言:javascript复制
> wget -q -O - "http://wordpress.org/latest.tar.gz" | tar -xzf - -C /var/www

相关文章

Linux之wget命令

0 人点赞