电子说
wget
是一个可以从网络上下载文件的免费实用程序,它的工作原理是从 Internet 上获取数据,并将其保存到本地文件中或显示在你的终端上。
这实际上也是大家所使用的浏览器所做的,例如 Firefox 或 Chrome,其实在内部也是调用了 wget
程序进行数据下载。
今天给大家介绍 8 个 wget
命令常见使用方式,希望能对小伙伴们有所帮助。wget
命令来下载指定链接的文件。默认情况下,下载的文件将保存到当前工作目录中的同名文件中。$ wget http://www.lxlinux.net --2021-09-20 1747-- http://www.lxlinux.net/ Resolving www.lxlinux.net... 93.184.216.34, 260622024825c8:1946 Connecting to www.lxlinux.net|93.184.216.34|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 1256 (1.2K) [text/html] Saving to: 'index.html' 如果你不想将下载的文件保存在本地,而只是想将其显示在标准输出(stdout)里,可以使用
--output-document
选项,同时后面再跟上一个 -
号。$ wget http://www.lxlinux.net --output-document - | head -n4
--output-document
选项(或者更简便,直接使用 -O
即可):$ wget http://www.lxlinux.net --output-document newfile.html
--continue
选项(或者 -c
)实现断点续传。也就是说,如果因为各种原因导致下载中断,使用了这个选项,就可以继续上次的下载,而不需要重新进行下载。$ wget --continue https://www.lxlinux.net/linux-distro.iso
wget
命令也可以帮你轻松实现。
但是,这里还需要使用一些 bash 语法来实现目的。一般来讲,这些文件的名称都有一定的规律,比如:file_1.txt,file_2.txt,file_3.txt,等等,那么你就需要使用这样的命令:$ wget http://www.lxlinux.net/file_{1..4}.txt
--mirror
选项。
这个选项等同于 --recursive --level inf --timestamping --no-remove-listing
,这意味着它是无限递归的,因此你可以下载到指定域上的所有内容。
如果你使用 wget
存档站点,那么这些选项 --no-cookies --page-requisites --convert-links
也可用于确保每个页面都是最新的、最完整的。--debug
选项查看 wget
每次请求发送的标头信息:$ wget --debug www.lxlinux.net ---request begin--- GET / HTTP/1.1 User-Agent: Wget/1.19.5 (linux-gnu) Accept: */* Accept-Encoding: identity Host: www.lxlinux.net Connection: Keep-Alive ---request end--- 你可以使用
--header
选项修改请求标头。为什么要这么做呢?其实有很多使用场景的。例如,有时候为了测试,需要模拟特定的浏览器发出的请求。
比如,你想模拟 Edge 浏览器发出来的请求,可以这样操作:$ wget --debug --header="User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.59" http://www.lxlinux.net 除此之外,你还可以伪装成特定的移动设备(比如 iPhone ):
$ wget --debug --header = "User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 13_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.1 Mobile/15E148 Safari /604.1" HTTP:// www.lxlinux.net
--debug
选项查看响应标头:$ wget --debug www.lxlinux.net [...] ---response begin--- HTTP/1.1 200 OK Accept-Ranges: bytes Age: 188102 Cache-Control: max-age=604800 Content-Type: text/html; charset=UTF-8 Etag: "3147526947" Server: ECS (sab/574F) Vary: Accept-Encoding X-Cache: HIT Content-Length: 1256 ---response end--- 200 OK Registered socket 3 for persistent reuse. URI content encoding = 'UTF-8' Length: 1256 (1.2K) [text/html] Saving to: 'index.html'
wget
的重定向功能。所以,如果你遇到 301 响应时,就需要使用 --max-redirect
选项。
如果你不想要重定向,那么可以将 --max-redirect
设置为 0 。$ wget --max-redirect 0 http://www.lxlinux.net --2021-09-21 1135-- http://www.lxlinux.net/ Resolving www.lxlinux.net... 192.0.43.8, 200188:8 Connecting to www.lxlinux.net|192.0.43.8|:80... connected. HTTP request sent, awaiting response... 301 Moved Permanently Location: https://www.www.lxlinux.net/ [following] 0 redirections exceeded. 或者,你还可以将其设置为其他数字以控制
wget
跟随的重定向数量。wget
命令来将短链接还原为长链接。这里依然使用 --max-redirect
选项:$ wget --max-redirect 0 "https://bit.ly/2yDyS4T" --2021-09-21 1104-- https://bit.ly/2yDyS4T Resolving bit.ly... 67.199.248.10, 67.199.248.11 Connecting to bit.ly|67.199.248.10|:443... connected. HTTP request sent, awaiting response... 301 Moved Permanently Location: http://www.lxlinux.net/ [following] 0 redirections exceeded. 输出的倒数第二行,在 Location 部分,后面你就看到了短链展开之后的真面目。
全部0条评论
快来发表一下你的评论吧 !