wget
是一个命令行实用程序,它从Internet检索文件并将它们保存到本地文件系统。任何可以通过HTTP或FTP协议访问的文件都能利用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头信息,请使用-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千字节。用于限制下载速率的方法对于较大的文件比快速完成的小型文件更有效。