专栏首页使用wget命令在命令行下下载资源

使用wget命令在命令行下下载资源

什么是wget?

wget是一个命令行实用程序,它从Internet检索文件并将它们保存到本地文件系统。任何可以通过HTTP或FTP协议访问的文件都能利用wget进行下载wget提供了许多选项,它们允许用户自主设置文件的下载方式和保存方式。wget还具有递归下载功能,允许您递归式地下载一组链接资源。

使用wget

wget命令使用以下基本语法:

wget [OPTIONS] [URL]

如果在没有选项的情况下,wget则会将指定地址([URL])的文件下载到当前目录:

wget https://www.linode.com/docs/assets/695-wget-example.txt
--2018-05-18 19:40:17-- https://www.linode.com/docs/assets/695-wget-example.txt
Resolving www.linode.com (www.linode.com)... 2600:3c00::12, 2600:3c00::32, 2600:3c00::22, ...
Connecting to www.linode.com (www.linode.com)|2600:3c00::12|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 522 [text/plain]
Saving to: ‘695-wget-example.txt.1’

695-wget-example.txt.1 100%[=================================================================================================================>] 522 --.-KB/s in 0s

2018-05-18 19:40:17 (67.7 MB/s) - ‘695-wget-example.txt.1’ saved [522/522]

这将在Linode Docs网站上下载示例文件。您可以使用以下命令查看该文件的内容cat

cat 695-wget-example.txt
This is an example resource for the `wget` document
, located
in the Linode Docs.

There are four lines of random characters at the end of this file.

y7tWn6zZRFAX1cXyQzzSBhTDC+/SpN/RezhI2acW3qr3HGFDCM7PX9frUhna75wG
6lOvibL5/sHTKP8N7tRfszZq1MaGlmpeEQN1n5afK6Awh0rykc5FMn2xb3jf0klF
wVPjuxsptT/L05K6avRI81Edg2+8CkS8uA16u+bXqRn1BBQutRvxwrWwrKuP10pR
uCf3HehndIeRghOAmXPc61cfUrHZ+MEqXYmSoKw4E0hI7GWXkwAyByCFPBVB9Fbe

示例

利用标准输出格式下载内容

-O选项控制wget写入下载文件的位置和名称。例如将文件example.txt下载并保存到mydir目录:

wget -O mydir/example.txt https://www.linode.com/docs/assets/695-wget-example.txt

如果你在命令wget -O - 中指定文件名为-wget将会把下载的文件输出到终端。添加-q标志以禁止状态输出:

wget -q -O - https://www.linode.com/docs/assets/695-wget-example.txt
This is an example resource for the `wget` document
, located
in the Linode Docs.

There are four lines of random characters at the end of this file.

y7tWn6zZRFAX1cXyQzzSBhTDC+/SpN/RezhI2acW3qr3HGFDCM7PX9frUhna75wG
6lOvibL5/sHTKP8N7tRfszZq1MaGlmpeEQN1n5afK6Awh0rykc5FMn2xb3jf0klF
wVPjuxsptT/L05K6avRI81Edg2+8CkS8uA16u+bXqRn1BBQutRvxwrWwrKuP10pR
uCf3HehndIeRghOAmXPc61cfUrHZ+MEqXYmSoKw4E0hI7GWXkwAyByCFPBVB9Fbe

查看HTTP头

要查看附加到资源的HTTP头信息,请使用-S选项。http头信息通常有助于诊断Web服务器配置问题。

wget -S https://www.linode.com/docs/assets/695-wget-example.txt
--2018-05-18 20:19:30-- https://www.linode.com/docs/assets/695-wget-example.txt
Resolving www.linode.com (www.linode.com)... 2600:3c00::22, 2600:3c00::12, 2600:3c00::32, ...
Connecting to www.linode.com (www.linode.com)|2600:3c00::22|:443... connected.
HTTP request sent, awaiting response...
HTTP/1.1 200 OK
Server: nginx
Date: Fri, 18 May 2018 20:19:30 GMT
Content-Type: text/plain
Content-Length: 522
Connection: keep-alive
Vary: Accept-Encoding
Last-Modified: Thu, 19 Apr 2018 23:17:41 GMT
ETag: "5ad92395-20a"
Accept-Ranges: bytes
Strict-Transport-Security: max-age=31536000
X-Frame-Options: DENY
Length: 522 [text/plain]
Saving to: ‘695-wget-example.txt.5’

695-wget-example.txt.5 100%[=================================================================================================================>] 522 --.-KB/s in 0s

2018-05-18 20:19:30 (75.1 MB/s) - ‘695-wget-example.txt.5’ saved [522/522]

如果要仅查看标头,请像以前一样添加-q选项以禁止状态输出:

wget -Sq https://www.linode.com/docs/assets/695-wget-example.txt
HTTP/1.1 200 OK
Server: nginx
Date: Fri, 18 May 2018 19:42:16 GMT
Content-Type: text/plain
Content-Length: 522
Connection: keep-alive
Vary: Accept-Encoding
Last-Modified: Thu, 19 Apr 2018 23:17:38 GMT
ETag: "5ad92392-20a"
Accept-Ranges: bytes
Strict-Transport-Security: max-age=31536000
X-Frame-Options: DENY

验证请求

如果您下载的文件需要HTTP身份验证,可以使用--http-user--http-password选项传递用户名和密码:

wget --http-user=[USERNAME] --http-password=[PASSWORD] [URL]

除非Web服务器提示,wget不会发送身份验证信息。使用--auth-no-challenge选项强制wget在任何情况下发送身份验证凭据。

接受自签名证书

要在受自签名SSL证书保护的站点上下载文件,请指定--no-check-certificate选项。虽然信息仍然是加密的,但证书的真实性无法确认。

递归下载文件

-r选项允许wget搜索下载的文件内容以获取指向其他资源的链接,然后下载这些资源。这对于创建静态网站的备份或可用资源的快照非常有用。还有许多其他选项可用于控制递归下载的行为。

wget -r -l 3 -k -p -H https://example.com/

选项-r -l 3 -k -p -H具有以下功能:

  • -r 启用递归下载。
  • -l 3允许wget下载3层以内深度的链接。使用0进行无限递归下载。
  • -k转换下载资源中的链接以指向本地下载的文件。生成的“镜像”将不会链接到原始源。
  • -p强制wget下载当前页面的所有链接资源,包括脚本和CSS文件。
  • -H允许递归下载网络上链接到其他主机的资源。除非特别指定,否则wget只会下载原始域中指定的主机上的资源。

后台下载

如果您不想wget占用终端进程,请使用-b选项来设置后台下载。

wget -b https://www.linode.com/docs/assets/695-wget-example.txt
Continuing in background, pid 953.
Output will be written to ‘wget-log’.

输出将写入wget-log供您稍后查看:

cat wget-log

避免冗余的下载

wget 有许多旨在通过避免冗余操作来节省带宽的选项。

  • -nc全称为“no clobber”,wget如果发现下载的文件会覆盖现有文件,则不会下载该文件。
  • -Nwget选项使得wget如果发现本地计算机上存在同名的较新文件,则不会下载文件。
  • -c允许wget继续下载之前中途停止下载的文件。

速率限制

如果需要控制wget的带宽使用量,可以使用--limit-rate=[RATE]选项指定下载带宽 。[RATE]除非附加k指定以千字节/秒为单位,否则以字节/秒为单位。

wget --limit-rate=3k https://linode.com

此命令下载1285786486.tar.gz文件,速率限制为每秒不超过3千字节。用于限制下载速率的方法对于较大的文件比快速完成的小型文件更有效。

本文的版权归 魔法少女伊莉雅 所有,如需转载请联系作者。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 在Debian上安装McMyAdmin for Minecraft

    McMyAdmin是最受欢迎的Minecraft服务器控制面板之一。它拥有与第三方mod的兼容性,专注于服务器安全性和管理服务器的Web界面流畅性。本指南介绍了...

    魔法少女伊莉雅
  • 企业的AI层和物联网

    根据德勤去年的预测,截至2016年底,按收入划分全球100家最大的企业软件公司中有80多家将认知技术融入其产品中。“Gartner还预测,新投资的40%企业将在...

    魔法少女伊莉雅
  • 使用Logwatch查看系统日志

    Logwatch是一个日志解析程序,可以分析并生成有关系统活动的每日报告。Logwatch不提供实时警报,而是创建系统运行状态的摘要,以便于查看。更高级的用户还...

    魔法少女伊莉雅
  • Macbook系统环境安装wget的两种方法

    目前Macbook系统自带有Python2.7版本,但是一些组件包并不全,尤其是wget命令都无法执行。所以,需要将Macbook环境安装wget命令。

    剑行者
  • Shell关于Wget命令的使用技巧

    wget 是一个命令行的下载工具。对于我们这些 Linux 用户来说,几乎每天都在使用它。下面为大家介绍几个有用的 wget 小技巧,可以让你更加高效而灵活的使...

    一见
  • 算法:最短路径之迪杰斯特拉(Dijkstra)算法

    对于网图来说,最短路径,是指两顶点之间经过的边上权值之和最少的路径,并且我们称路径上的第一个顶点为源点,最后一个顶点为终点。最短路径的算法主要有迪杰斯特拉(Di...

    s1mba
  • Android-Jetpack笔记-Navigation之Fragment支持复用

    上篇文章Android-Jetpack笔记-Navigation之Fragment使用提到,每次切换目的地,fragment是反复销毁重建的,按照谷歌推荐的1个...

    Holiday
  • 漫谈虚拟路由方案

    前言——关于虚拟路由 SDN,抑或是OpenFlow,能否为路由市场开辟一个新的时代?以OpenvSwitch为代表的开源软件交换机,已经推动SDN界发展了一段...

    SDNLAB
  • 从 0 开始入门 Chrome Ext 安全(一) -- 了解一个 Chrome Ext

    在2019年初,微软正式选择了Chromium作为默认浏览器,并放弃edge的发展。并在19年4月8日,Edge正式放出了基于Chromium开发的Edge D...

    Seebug漏洞平台
  • 【nodejs原理&源码赏析(5)】net模块与通讯的实现

    net模块是nodejs通讯功能实现的基础,nodejs中最常用的功能就是作为WebServer使用,建立服务器时使用的http.createServer就是在...

    大史不说话

扫码关注云+社区

领取腾讯云代金券