前言
我们在linux中,常常需要下载软件,而wget就是一个很适合进行下载文件的命令。
wget
wget 是一个从网络上自动下载文件的自由工具,支持通过 HTTP、HTTPS、FTP 三个最常见的 TCP/IP协议 下载,并可以使用 HTTP 代理。“wget” 这个名称来源于 “World Wide Web” 与 “get” 的结合。所谓自动下载,是指 wget 可以在用户退出系统的之后在继续后台执行,直到下载任务完成。wget常用于从指定的URL下载文件。
语法
wget(选项)(参数)
选项
-a<日志文件>:在指定的日志文件中记录资料的执行过程;
-A<后缀名>:指定要下载文件的后缀名,多个后缀名之间使用逗号进行分隔;
-b:进行后台的方式运行wget;
-B<连接地址>:设置参考的连接地址的基地地址;
-c:继续执行上次终端的任务;
-C<标志>:设置服务器数据块功能标志on为激活,off为关闭,默认值为on;
-d:调试模式运行指令;
-D<域名列表>:设置顺着的域名列表,域名之间用“,”分隔;
-e<指令>:作为文件“.wgetrc”中的一部分执行指定的指令;
-h:显示指令帮助信息;
-i<文件>:从指定文件获取要下载的URL地址;
-l<目录列表>:设置顺着的目录列表,多个目录用“,”分隔;
-L:仅顺着关联的连接;
-r:递归下载方式;
-nc:文件存在时,下载文件不覆盖原有文件;
-nv:下载时只显示更新和出错信息,不显示指令的详细执行过程;
-q:不显示指令执行过程;
-nh:不查询主机名称;
-v:显示详细执行过程;
-V:显示版本信息;
--passive-ftp:使用被动模式PASV连接FTP服务器;
--follow-ftp:从HTML文件中下载FTP连接文件。
-O, --output-document=FILE 将文档写入 FILE。
-P, --directory-prefix=PREFIX 以 PREFIX/... 保存文件
-x, --force-directories 强制创建目录。
参数
URL:下载文件的URL地址。
实例
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
上面例子会从网络中下载一个文件并保存在当前的目录
如果想以特定的文件名来下载,那么可以使用-O参数,后面加上我们自定义的文件名即可
例:
wget -O mysql.tar.gz https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
上面例子下载的文件就会以我们定义的 mysql.tar.gz来保存,而不是路径最后一层的字符串了(mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz)
使用wget断点续传
wget -c https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
使用wget -c重新启动下载中断的文件,对于我们下载大文件时突然由于网络等原因中断非常有帮助,我们可以继续接着下载而不是重新下载一个文件。需要继续中断的下载时可以使用-c参数。
使用wget后台下载
wget -b https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
对于下载非常大的文件的时候,我们可以使用参数-b进行后台下载,你可以使用以下命令来察看下载进度:
tail -f wget-log
下载文件到指定目录
有时候,我们不想文件下载到当前目录,那么可以使用-P参数指定下载目录
wget --P /root/data https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
上面例子的文件就会下载到/root/data目录下
测试下载链接
当你打算使用wget进行下载时,我们可以增加–spider参数进行检查下载链接是否有效。
wget --spider URL
例:
wget --spider https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
如果链接有效,那么会返回以下类似信息(200 OK)
正在解析主机 cdn.mysql.com (cdn.mysql.com)... 23.209.4.33
正在连接 cdn.mysql.com (cdn.mysql.com)|23.209.4.33|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:644930593 (615M) [application/x-tar-gz]
存在远程文件。
限制下载速度
wget可能会把我们的网络霸占完,如果我们不想wget使用了所有网络,那么可以使用wget --limit-rate进行限速
例:限速300k
wget --limit-rate=300k https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
FTP下载
使用wget匿名ftp下载:
wget ftp-url
使用wget用户名和密码认证的ftp下载:
wget --ftp-user=USERNAME --ftp-password=PASSWORD url