首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用wget命令在命令行下下载资源

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

作者头像
魔法少女伊莉雅
发布2018-09-03 14:34:53
3.8K0
发布2018-09-03 14:34:53

什么是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 条评论
热度
最新
推荐阅读
目录
  • 什么是wget?
  • 使用wget
  • 示例
    • 利用标准输出格式下载内容
      • 查看HTTP头
        • 验证请求
          • 接受自签名证书
            • 递归下载文件
              • 后台下载
                • 避免冗余的下载
                  • 速率限制
                  相关产品与服务
                  多因子身份认证
                  多因子身份认证(Multi-factor Authentication Service,MFAS)的目的是建立一个多层次的防御体系,通过结合两种或三种认证因子(基于记忆的/基于持有物的/基于生物特征的认证因子)验证访问者的身份,使系统或资源更加安全。攻击者即使破解单一因子(如口令、人脸),应用的安全依然可以得到保障。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档