wget是一个Linux命令行工具,用于检索和下载互联网上的文件。它使用诸如FTP、HTTP和HTTPS等协议来完成这些任务。在这篇文章中,我们讨论了常用的wget命令和选项。
目录:
- 简介
- 语法
- 命令
- 总结
- 参考文献
介绍
wget是一个Linux命令行工具,用于从互联网检索或下载文件。它使用诸如FTP、HTTP和HTTPS等协议来完成这些任务。
wget甚至可以在缓慢和不稳定的网络连接中工作,当我们失去连接时,我们可以从它停止的地方继续下载。它还被用于镜像网站。
语法
语法如下:
wget [OPTION] [URL]
命令:
要从一个网站下载一个文件,opengenus.org/notes.pdf,我们写。
wget https://opengenus.org/notes.pdf
对于无声的下载,我们使用*-q*选项:
wget -q https://opengenus.org/notes.pdf
如果我们想把文件下载到一个特定的目录中,我们写道:
wget -P ~/Documents/notes https://opengenus.org/notes.pdf
其中~/Documents/notes是我们指定的目录,也是下载的文件将被保存的地方。
我们还可以通过使用*-O*选项将下载的文件保存在一个不同的名称下:
wget -O newFile.pdf https:///www/url.com/notes.pdf
该命令将下载notes.pdf并将其保存为newFile.pdf。
我们也可以通过将来源保存在一个文件中来下载多个文件,例如
vim urls.txt
输入以下网址:
https://www.url1.com/pdf
https://www.url2.com
https://www.url3.com/documents
为了获取这些文件,我们写道:
wget -i urls.txt
wget将从urls.txt中描述的三个urls中获取所有文件。
我们也可以选择把所有的urls写在命令本身,如下:
wget https://www.url1.com/pdf https://www.url2.com https://www.url3.com/documents
我们还可以使用通配符*从同一来源下载多个相同类型的文件,如下所示:
wget ftp://exampleserver/music/*.mp3
上述命令下载了所有以*.mp3*文件为扩展名的文件。
假设我们想继续进行其他工作,wget可以通过使用*-b*选项在后台工作,如下所示。
wget -b https:///www/url.com/files
我们可以定义一个日志文件,与下载有关的信息将被保存在那里,也就是在它在后台工作的时候:
wget -b info.log https:///www/url.com/files
我们还可以通过使用*-o*选项将信息记录到一个文件中:
wget https:///www/url.com/files -o info.log
假设我们在下载过程中被打断了,我们可以使用*-c*选项来恢复下载,如下图:
wget -c https:///www/url.com/image.iso
我们还可以通过使用*-limit-rate*选项来限制下载速度,如下所示:
wget --limit-rate=128k https:///www/url.com/image.iso
上述命令以128kbs的速度下载文件。
速度可以用k表示千字节,m表示兆字节,g
表示千兆字节。
一个远程资源可能被配置为阻止wget用户代理来绕过这种情况,我们可以使用*-U*选项来模拟一个不同的浏览器,如下所示:
wget --user-agent="Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36" http://wget-forbidden.com/
其中我们定义用户代理为*'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36'* 。
我们也可以通过ftp协议下载,其中ftp服务器有密码保护,我们写道:
wget --ftp-user=USERNAME --ftp-password=PASSWORD ftp://ftp.example.com/filename.zip
其中*'USERNAME'是实际用户名的占位符,'PASSWORD'*是实际密码。
要从受密码保护的HTTP服务器上下载文件,我们写道:
wget --http-user=USERNAME --http-password=PASSWORD http://http.example.com/filename.zip
镜像一个网站包括通过下载html、css和javascript以及网站的内部链接来创建一个网站的本地副本。我们使用*-m*选项:
wget -m https://www.mirrorwebsite.com
假设我们希望能够浏览下载的镜像,我们使用*-k选项将链接转换为适合浏览的链接,并使用-p*选项下载所有文件以显示html页面:
wget -mkp https://www.mirrorwebsite.com
我们也可以这样写:
wget -rpEHk --restrict-file-names=windows -D mirrorwebsite.com -np https://www.mirrorwebsite.com
其中
- -r, --递归意味着下载整个网站
- -p, --page-requisites,获取所有资产,如html、css和js
- -E, --adjust-extension, 用必要的扩展名保存文件,例如.html
- -H, --span-hosts, 从网站外包括必要的资产。
- -k, --convert-links,更新链接,使其在本地版本中仍然有效。
- --restrict-file-names=windows, 修改文件名,使它们也能在windows环境下工作。
- -D, --domains https:www.mirrorwebsite.com, 这样wget就不会跟踪这个域外的链接
- -np, --no-parent, 这样wget就不会跟踪通过的目录之外的链接。
如果我们想通过HTTPS协议下载文件并忽略SSL证书检查,我们使用*--no-check-certificate*选项。
wget --no-check-certificate https://domain-with-invalid-ssl.com
摘要
我们使用wget工具来下载文件,恢复中断的下载,镜像网站,控制下载速度等。
wget是一个非交互式的网络下载器,不需要用户与之交互,因此使它对shell脚本很有用。
参考资料
- 执行命令wget --help或man wget,查看其手册页面。
- curl命令