四、使用wget
1 wget简介
wget是gnu组织下的一个免费软件下载工具,用 wget下载软件比普通浏览器的“另存为”要快很多。同时,Wget支持http,https和ftp。
缺省情况下,Solaris已经 自带了该软件,在 /usr/sfw/bin/目录,请把这个路径也设置到环境变量中,因为pkg-get要使用Wget来下载软件。
Wget的使用方法非常简单,只需要在命令后面加上下载的地址,例如:
#/usr/sfw/bin/wget http://xxx.xxx.xxx.xxx/abc.zip
如果连接网络需要代理,请按下列方法设置:
#export http_proxy="http://proxyip:8080"
#export ftp_proxy=http://proxyip:8080
2 wget参数
wget的参数较多,但大部分应用只需要如下几个常用的参数:
-r 递归;对于HTTP主机,wget首先下载URL指定的文件,然后(如果该文件是一个HTML文档的话)递归下载该文件所引用(超级连接)的所有文件(递归深度 由参数-l指定)。对FTP主机,该参数意味着要下载URL指定的目录中的所有文件, 递归方法与HTTP主机类似。
-N 时间戳:该参数指定wget只下载更新的文件,也就是说,与本地目录中的对 应文件的长度和最后修改日期一样的文件将不被下载。
-m 镜像:相当于同时使用-r和-N参数。
-l 设置递归级数;默认为5。-l1相当于不递归;-l0为无穷递归;注意,当递 归深度增加时,文件数量将呈指数级增长。
-t 设置重试次数。当连接中断(或超时)时,wget将试图重新连接。如果指 定-t0,则重试次数设为无穷多。
-c 指定断点续传功能。实际上,wget默认具有断点续传功能,只有当你使用别 的ftp工具下载了某一文件的一部分,并希望wget接着完成此工作的时候,才需要 指定此参数。
-L 只扩展相对连接,该参数对于抓取指定站点很有用,可以避免向宿主主机 的其他目录扩散。
-k 转换连接:HTML文件存盘时,将其中的非相对连接转换成为相对连接。
-X 在下载FTP主机上的文件时,排除若干指定的目录
-v 设置wget输出详细的工作信息。
-q 设置wget不输出任何信息。
3 wget 使用技巧
wget 是一个命令行的下载工具。下面为大家介绍几个有用的 wget 小技巧,可以让你更加高效而灵活的使用 wget。
# wget -r -np -nd http://www.example.com/packages/
这条命令可以下载 http://www.example.com 网站上 packages 目录中的所有文件。其中,-np 的作用是不遍历父目录,-nd 表示不在本机重新创建目录结构。
# wget -r -np -nd --accept=iso http://www.example.com/cen/i386/
与上一条命令相似,但多加了一个 --accept=zip 选项,这指示 wget 仅下载 i386 目录中所有扩展名为 zip 的文件。你也可以指定多个扩展名,只需用逗号分隔即可。
# wget -i filename.txt
此命令常用于批量下载的情形,把所有需要下载文件的地址放到 filename.txt 中,然后 wget 就会自动为你下载所有文件了。
# wget -c http://www.example.com/big-file.iso
这里所指定的 -c 选项的作用为断点续传。
# wget -m -k (-H) http://www.www.example.com/
该命令可用来镜像一个网站,wget 将对链接进行转换。如果网站中的图像是放在另外的站点,那么可以使用 -H 选项。
# wget -m -l4 -t0 http://oneweb.com.cn/
将在本地硬盘建立http://oneweb.com.cn/的镜像,镜像文件存入当前目录下一个名为 oneweb.com.cn的子目录中(你也可以使用-nH参数指定不建立该子目录,而直接在当前 目录下建立镜像的目录结构),递归深度为4,重试次数为无穷。
#wget -L http://www.xys.org/~ppfl/
该命令则只提取该网站的ppfl目录,而不涉及主机www.xys.org上的其他目录。