wget
是一个可以从网络上下载文件的免费实用程序,它的工作原理是从 Internet 上获取数据,并将其保存到本地文件中或显示在你的终端上。
这实际上也是大家所使用的浏览器所做的,例如 Firefox 或 Chrome,其实在内部也是调用了 wget
程序进行数据下载。
今天给大家介绍 8 个 wget
命令常见使用方式,希望能对小伙伴们有所帮助。1. 使用 wget 命令下载文件
你可以使用wget
命令来下载指定链接的文件。默认情况下,下载的文件将保存到当前工作目录中的同名文件中。$wgethttp://www.lxlinux.net --2021-09-201747--http://www.lxlinux.net/ Resolvingwww.lxlinux.net...93.184.216.34,260622024825c8:1946 Connectingtowww.lxlinux.net|93.184.216.34|:80...connected. HTTPrequestsent,awaitingresponse...200OK Length:1256(1.2K)[text/html] Savingto:'index.html' 如果你不想将下载的文件保存在本地,而只是想将其显示在标准输出(stdout)里,可以使用
--output-document
选项,同时后面再跟上一个 -
号。$wgethttp://www.lxlinux.net--output-document-|head-n4
--output-document
选项(或者更简便,直接使用 -O
即可):$wgethttp://www.lxlinux.net--output-documentnewfile.html
2. 断点续传
如果你要下载的文件非常大,因为网络的原因有可能出现一次性无法下载完全的情况。如果每次都要重新下载,那么都不知道要等到猴年马月。 这种情况下,就可以使用--continue
选项(或者 -c
)实现断点续传。也就是说,如果因为各种原因导致下载中断,使用了这个选项,就可以继续上次的下载,而不需要重新进行下载。$wget--continuehttps://www.lxlinux.net/linux-distro.iso
3. 下载一系列文件
如果你下载的不是一个大文件,而是需要很多个小文件,那么wget
命令也可以帮你轻松实现。
但是,这里还需要使用一些 bash 语法来实现目的。一般来讲,这些文件的名称都有一定的规律,比如:file_1.txt,file_2.txt,file_3.txt,等等,那么你就需要使用这样的命令:$wgethttp://www.lxlinux.net/file_{1..4}.txt
4. 镜像整个站点
如果你想对某个网站进行整站下载,包括其目录结构,那么你就需要使用--mirror
选项。
这个选项等同于 --recursive --level inf --timestamping --no-remove-listing
,这意味着它是无限递归的,因此你可以下载到指定域上的所有内容。
如果你使用 wget
存档站点,那么这些选项 --no-cookies --page-requisites --convert-links
也可用于确保每个页面都是最新的、最完整的。5. 修改 HTML 请求标头
学过网络通讯的小伙伴都知道,HTTP 数据包里包含了非常多的元素。其中,HTTP 标头是数据包初始的组成部分。 当你使用浏览器浏览网页时,你的浏览器会向服务器发送 HTTP 请求标头。具体发了些什么东西呢?可以使用--debug
选项查看 wget
每次请求发送的标头信息:$wget--debugwww.lxlinux.net ---requestbegin--- GET/HTTP/1.1 User-Agent:Wget/1.19.5(linux-gnu) Accept:*/* Accept-Encoding:identity Host:www.lxlinux.net Connection:Keep-Alive ---requestend--- 你可以使用
--header
选项修改请求标头。为什么要这么做呢?其实有很多使用场景的。例如,有时候为了测试,需要模拟特定的浏览器发出的请求。
比如,你想模拟 Edge 浏览器发出来的请求,可以这样操作:$wget--debug--header="User-Agent:Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/91.0.4472.124Safari/537.36Edg/91.0.864.59"http://www.lxlinux.net 除此之外,你还可以伪装成特定的移动设备(比如 iPhone ):
$wget--debug --header="User-Agent:Mozilla/5.0(iPhone;CPUiPhoneOS13_5_1likeMacOSX)AppleWebKit/605.1.15(KHTML,likeGecko)Version/13.1.1Mobile/15E148Safari/604.1" HTTP:// www.lxlinux.net
6. 查看响应标头
与浏览器请求发送标头信息的方式相同,标头信息也包含在响应中。同样地,你可以使用--debug
选项查看响应标头:$wget--debugwww.lxlinux.net [...] ---responsebegin--- HTTP/1.1200OK 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 ---responseend--- 200OK Registeredsocket3forpersistentreuse. URIcontentencoding='UTF-8' Length:1256(1.2K)[text/html] Savingto:'index.html'
7. 响应 301 响应
熟悉网络协议的都知道,200 响应码意味着一切都按预期进行。而 301 响应则意味着 URL 已经指向不同的网站。 这种情况下,如果你需要下载文件,那么就需要使用wget
的重定向功能。所以,如果你遇到 301 响应时,就需要使用 --max-redirect
选项。
如果你不想要重定向,那么可以将 --max-redirect
设置为 0 。$wget--max-redirect0http://www.lxlinux.net --2021-09-211135--http://www.lxlinux.net/ Resolvingwww.lxlinux.net...192.0.43.8,200188:8 Connectingtowww.lxlinux.net|192.0.43.8|:80...connected. HTTPrequestsent,awaitingresponse...301MovedPermanently Location:https://www.www.lxlinux.net/[following] 0redirectionsexceeded. 或者,你还可以将其设置为其他数字以控制
wget
跟随的重定向数量。8. 展开短链接
有时候,我们需要将一个长链接转为短链接,例如在文本框里填写信息时,有时候文本框对字符长度有限制,这时短链就可以大大减少字符数。 除了使用第三方平台,其实我们可以直接使用wget
命令来将短链接还原为长链接。这里依然使用 --max-redirect
选项:$wget--max-redirect0"https://bit.ly/2yDyS4T" --2021-09-211104--https://bit.ly/2yDyS4T Resolvingbit.ly...67.199.248.10,67.199.248.11 Connectingtobit.ly|67.199.248.10|:443...connected. HTTPrequestsent,awaitingresponse...301MovedPermanently Location:http://www.lxlinux.net/[following] 0redirectionsexceeded. 输出的倒数第二行,在 Location 部分,后面你就看到了短链展开之后的真面目。
审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
命令
+关注
关注
5文章
698浏览量
22149 -
wget
+关注
关注
0文章
5浏览量
2156
原文标题:wget命令8种实用用法
文章出处:【微信号:gh_c472c2199c88,微信公众号:嵌入式微处理器】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
使用curl+wget抓取网页方法
Linux抓取网页,简单方法是直接通过 curl 或 wget 两种命令。curl 和 wget 命令,目前已经支持Linux和Window
发表于 02-25 09:54
是否可以使用wget中包含的no-check-certificate命令?
嗨,
我是 MMISCOOL 的新手,刚开始研究它。我注意到它有 wget 但要连接到 SSL,设备需要有 SSL 证书。我感兴趣的是我是否可以使用 wget 中包含的 --no-check-certificate 命令?
发表于 04-26 08:52
手机NFC的六种实用用法
每当新机发布时,相信不少小伙伴除了会关注手机的性能、拍照、续航、价格之外,而且还会关注手机是否还带NFC功能。随着科技发展,现在手机里的NFC功能已经多达六种了,接下来笔者就来告诉大家NFC究竟那六种实用的用法。
命令行工具Kubectl的别样用法
kubectl 是 K8s 官方附带的命令行工具,可以方便的操作 K8s 集群。这篇文章主要介绍一些 kubectl 的别样用法,希望读者有一定基础的 K
Ping命令的7个基础用法
IT行业中ping命令经常被用到,今天整理了一下关于网络基础知识中的网络命令ping命令在项目中是使用频率最高的,一般我们用的都是它的基本功能,今天和大家来详细看下Ping命令的7个基
模拟初始状态相关的.ic和.save命令用法
.step 和 .meas 命令用法。本文将继续探讨 LTspice 仿真命令,介绍 .ic 和 .save 命令用法,在评估开关电源时,它
Linux wget命令详解
GNU Wget是一个命令行程序,用于从Web下载文件。Wget可以让您可以使用HTTP,HTTPS和FTP协议下载文件。
linux常用命令及用法
Linux是一种开源的操作系统,它以稳定、高效和安全的特点受到广大用户的喜爱。掌握Linux的常用命令及其用法对于操作系统的管理和开发都至关重要。本文将详尽、详实、细致地介绍Linux常用命令
Linux lsof命令的基本用法
在 linux 系统中,一切皆文件。通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以 lsof 命令不仅可以查看进程打开的文件、目录,还可以查看进程监听的端口等 socket 相关的信息。本文将介绍 lsof 命令的基本用
![Linux lsof<b class='flag-5'>命令</b>的基本<b class='flag-5'>用法</b>](https://file1.elecfans.com/web1/M00/F3/7F/wKgaoWcYc2mAFw5cAAA4fI5XmGk856.png)
curl wget bond:深入解析命令行工具的差异与应用场景
curl curl 是一个用于与服务器进行数据传输的命令行工具。它支持多种协议,包括 HTTP、HTTPS、 FTP 等。 基本用法 获取网页内容: curl http://example.com
评论