参考资料:
https://www.cnblogs.com/ftl1012/p/9265699.html
https://www.cnblogs.com/lsdb/p/7171779.html
curl和wget都是Linux下常用的下载工具,区别在于,curl可以自定义各种请求参数,所以在模拟web请求方面更擅长;而wget由于支持ftp和递归(recursive)下载,所以在下载文件方面更擅长。类比的话curl好比浏览器,而wget是迅雷。
因为计网实验的原因接触了wget,之前虽也有所耳闻但是却只知有这个下载工具,不知怎么使用,有什么功能。下面总结一下学到的wget常用的命令,以便日后查阅,有需求时深入学习。
首先给出最实用的几个命令:
wget -c + URL或者文件名 # 支持断点续传的下载 wget -b + URL或者文件名 # 后台下载 wget -i list # 预先给定URL列表,下载list中URL对应的文件 wget -x -r -A "*.txt" + URL 一般为目录 # 递归的下载目标目录下所有的目录和文件,并在本地创建对应文件目录 wget -nd -r -A "*.txt" + URL 一般为目录 # 递归的下载目标目录下所有的目录和文件,并不在本地创建对应文件目录 wget –x –r –R "*.txt" + URL 一般为目录 # 递归下载除某后缀之外的文件,并创建目录结构 wget –nd –r –R "*.txt" + URL 一般为目录 # 递归下载除某后缀之外的文件,并不创建目录结构 wget –m + URL 一般为目录 # 创建镜像,即完全copy
这里补充一下递归下载的概念,这是一个很重要的特性。我们经常会听到递归搜索,递归下载。这里的递归指的是在当前目录和所有子目录。如果不使用递归下载,则只会下载当前文件夹下的文件,而忽略当前文件夹下的目录。也就是说子目录和子目录下的文件都不会被下载。
下面罗列一些wget命令的常用参数:
参数 |
参数含义 |
‐‐help |
显示 wget 的联机帮助,本表中仅仅给出了部分参数的使用,更详 细的参数使用请查阅联机帮助 |
‐A |
表示仅接受指定的文件类型,如‐A "*.gif"将仅下载 gif 图片,如果 有多个允许可以使用“,”分开 |
‐b |
让 wget 在后台运行,记录文件写在当前目录下"wget‐log"文件中 |
‐t [nuber of times] |
当 wget 无法与服务器建立连接时,尝试连接多少次。比如"‐t 120" 表示尝试 120 次。当这一项为"0"的时候,指定尝试无穷多次直到 连接成功为止 |
‐c |
断点续传,这也是个非常有用的设置,特别当下载比较大的文件 的时候,如果中途意外中断,那么连接恢复的时候会从上次没传 完的地方接着传,而不是又从头开始 |
‐T [number of sec] |
超时时间。如"‐T 120"表示如 120 秒以后远程服务器没有发过来数 据,就重新尝试连接。如果网络速度比较快,这个时间可以设置 的短些 |
‐w [number of seco] |
在两次尝试之间等待多少秒,比如"‐w 100"表示两次尝试之间等待 100 秒 |
‐Q [byetes] |
限制下载文件的总大小不能超过多少,如"‐Q2k"表示不能超过 2K 字节,"‐Q3m"表示不能超过 3M 字节 |
‐nd |
不下载目录结构,把从服务器所有指定目录下载的文件都堆到当 前目录里 |
‐x |
与"‐nd"设置刚好相反,如"wget ‐x http://a.b.c"将创建在当前目录 下创建"a.b.c"子目录,然后按照服务器目录结构一级一级建下去, 直到所有的文件都传完 |
‐nH |
不创建以目标主机域名为目录名的目录,将目标主机的目录结构 直接下到当前目录下 |
‐‐http‐user=xxx |
如果 Web 服务器需要指定用户名和口令,用这两项来设定 |
‐‐http‐passwd=xxx |
|
‐i download_list |
下载文件“download_list”中列出的所有 URL |
‐k |
将链接转换为本地连接 |
‐‐proxy‐user=xxx |
如果代理服务器需要输入用户名和口令,使用这两个选项 |
‐‐proxy‐passwd=xxx |
|
‐r |
‐‐recursive specify recursive download |
‐R |
指定拒绝的文件类型,如‐R "*.gif"将不下载 gif 图片,如果有多个 不允许,可以使用“,”分开 |
‐l [depth] |
下载远程服务器目录结构的深度,例如"‐l 5"下载目录深度小于或 者等于 5 以内的目录结构或者文件 |
‐m |
做站点镜像时的选项,如果你想做一个站点的镜像 |
‐np |
只下载目标站点指定目录及其子目录的内容 |