当前位置: 首页 > 后端技术 > Java

wget命令的8个实用用法

时间:2023-04-01 15:25:06 Java

大家好,我是梁旭。wget是一个免费的实用程序,可以从Web下载文件。它通过从Internet获取数据并将其保存到本地文件或在您的终端上显示来工作。这其实就是你使用的浏览器,比如Firefox或者Chrome,实际上是在内部调用wget程序来下载数据的。本文介绍了wget命令的8种常用使用方法,希望对小伙伴们有所帮助。1、使用wget命令下载文件可以使用wget命令从指定链接下载文件。默认情况下,下载的文件保存到当前工作目录中的同名文件中。$wgethttp://www.lxlinux.net--2021-09-2017:23:47--http://www.lxlinux.net/解析www.lxlinux.net...93.184.216.34,2606:2800:220:1:248:1893:25c8:1946正在连接到www.lxlinux.net|93.184.216.34|:80...已连接。已发送HTTP请求,正在等待响应...200OKLength:1256(1.2K)[文本/html]Savingto:'index.html'如果你不想将下载的文件保存到本地,而只想在标准输出(stdout)上显示,你可以使用--output-document选项,并且稍后跟进A-标志。$wgethttp://www.lxlinux.net--output-document-|head-n4ExampleDomain如果你想重命名下载的文件,那么你可以使用--output-document选项(或者更方便的是,使用-O直接):$wgethttp://www.lxlinux.net--output-documentnewfile.html2。下载的文件很大,由于网络原因可能无法一次性完整下载。如果每次都要重新下载,那就不知道要等到猴年了。在这种情况下,您可以使用--continue选项(或-c)恢复上传。也就是说,如果由于各种原因导致下载中断,使用该选项,可以继续上次的下载,无需重新下载。$wget--continuehttps://www.lxlinux.net/linux-distro.iso3。下载一系列文件如果你下载的不是一个大文件,而是需要很多小文件,那么wget命令也可以帮你轻松完成。但是,这里仍然可以使用一些bash语法来使事情正常进行。一般来说,这些文件的名字都有一定的规则,比如:file_1.txt、file_2.txt、file_3.txt等,这时就需要使用这个命令:$wgethttp://www.lxlinux。网络/文件_{1..4}.txt4。镜像整个站点如果你想下载一个网站的整个站点,包括它的目录??结构,那么你需要使用--mirror选项。该选项等同于--recursive--levelinf--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.1User-Agent:Wget/1.19.5(linux-gnu)Accept:*/*Accept-Encoding:identityHost:www.lxlinux.netConnection: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.net6.查看响应头与浏览器请求发送头信息是一样的,头信息也包含在响应中。同样,您可以使用--debug选项查看响应标头:$wget--debugwww.lxlinux.net[...]---responsebegin---HTTP/1.1200OKAccept-Ranges:bytesAge:188102Cache-控制:max-age=604800Content-Type:text/html;charset=UTF-8Etag:"3147526947"Server:ECS(sab/574F)Vary:Accept-EncodingX-Cache:HITContent-Length:1256---responseend---200OKRegisteredsocket3forpersistentreuse.URI内容编码='UTF-8'长度:1256(1.2K)[text/html]保存到:'index.html'7。Response301Response熟悉网络协议的人都知道,200响应代码意味着一切正常。另一方面,301响应意味着URL指向了不同的网站。这种情况下,如果需要下载文件,就需要使用wget的重定向功能。所以,如果遇到301响应,则需要使用--max-redirect选项。如果您不想重定向,可以将--max-redirect设置为0。$wget--max-redirect0http://www.lxlinux.net--2021-09-2111:01:35--http://www.lxlinux.net/正在解析www.lxlinux.net...192.0.43.8,2001:500:88:200::8Connectingtowww.lxlinux.net|192.0.43.8|:80...connected.HTTP请求已发送,正在等待响应...301MovedPermanentlyLocation:https://www.www.lxlinux.net/[以下]超过0个重定向。或者,您也可以将其设置为其他数字以控制wget遵循的重定向次数。8.扩展短链接有时候,我们需要将长链接转换成短链接。例如,在文本框填写信息时,有时文本框对字符长度有限制,短链接可以大大减少字符数。除了借助第三方平台,其实我们可以直接使用wget命令将短链接恢复为长链接。这里仍然使用--max-redirect选项:$wget--max-redirect0"https://bit.ly/2yDyS4T"--2021-09-2111:32:04--https://bit.ly/2yDyS4TResolvingbit.ly...67.199.248.10,67.199.248.11Connectingtobit.ly|67.199.248.10|:443...connected.HTTP请求已发送,正在等待响应...301MovedPermanentlyLocation:http://www.lxlinux.net/[以下]0个重定向超出。输出的倒数第二行,在Location部分,你会看到短链展开后的真面目。最后,最近有很多朋友找我要一份Linux学习路线图,所以我结合自己的经验,利用业余时间熬夜一个月,整理了一本电子书。无论你是面试还是自我提升,相信都会对你有所帮助!免费送给大家,只求大家给我点个赞!电子书|LinuxDevelopmentLearningRoadmap也希望有小伙伴可以和我一起把这本电子书做得更完美!获得?希望老铁们来个三连击,让更多人看到这篇文章。推荐阅读:干货|程序员进阶架构师必备资源免费书单|程序员必读经典书籍清单(高清PDF版))