wget实用工具是从互联网下载文件的最佳选择。 wget几乎可以处理所有复杂的下载情况,包括大文件下载,递归下载,非交互式下载,多文件下载等,
wget 是一个从网络上自动下载文件的自由工具,支持通过 HTTP、HTTPS、FTP 三个最常见的 TCP/IP协议 下载,并可以使用 HTTP 代理。"wget" 这个名称来源于 “World Wide Web” 与 “get” 的结合。
所谓自动下载,是指 wget 可以在用户退出系统的之后在继续后台执行,直到下载任务完成。
在这篇文章中,让我们回顾一下如何使用wget实现各种下载场景。
1、使用wget下载单个文件
以下示例从Internet下载单个文件并存储在当前目录中。
$ wget http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2
下载时将显示一个进度条,并提供以下信息:
下载完成百分比(例如31%,如下所示)
目前下载的总字节数(例如,如下所示为1,213,592字节)
当前的下载速度(例如,如下所示的68.2K / s)
剩余的时间下载(例如,如下所示的eta 34秒)
正在下载:
$ wget http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2 Saving to: `strx25-0.9.2.1.tar.bz2.1' 31% [=================> 1,213,592 68.2K/s eta 34s
下载完成:
$ wget http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2 Saving to: `strx25-0.9.2.1.tar.bz2' 100%[======================>] 3,852,374 76.8K/s in 55s 2009-09-25 11:15:30 (68.7 KB/s) - `strx25-0.9.2.1.tar.bz2' saved [3852374/3852374]
2、使用wget -O下载并以不同的文件名保存
默认情况下,wget会在最后一个正斜杠之后的最后一个字中选择文件名,这可能并不总是合适的。
错误:以下示例将下载并存储文件,名称为:download_script.php?src_id = 7701
$ wget http://www.vim.org/scripts/download_script.php?src_id=7701
即使下载的文件是zip格式,它也将被存储在文件中,如下所示。
$ ls download_script.php?src_id=7701
正确:要解决此问题,我们可以使用-O选项指定输出文件名称,如下所示:
$ wget -O taglist.zip http://www.vim.org/scripts/download_script.php?src_id=7701
3、使用wget -limit-rate指定下载速度/下载速率
在执行wget时,默认情况下会尝试占用完全可能的带宽。 在生产服务器上下载大文件时,这可能是不可接受的。 所以,为了避免这种情况,我们可以使用-limit-rate限制下载速度,如下所示。
在以下示例中,下载速度限制为200k
$ wget --limit-rate = 200k http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2
4、使用wget -c继续不完整的下载
使用wget -c选项重新启动在中间停止的下载,如下所示。
$ wget -c http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2
当你启动了一个非常大的文件下载,中间被中断时,这是非常有用的。 您可以使用选项-c从中断处开始下载,而不必重新开始下载
注意:如果下载在中间停止,当您再次重新下载而没有选项-c时,wget会自动将.1附加到文件名,因为以前名称的文件已经存在。 如果一个.1文件已经存在,它会在最后用.2下载文件。
5、使用wget -b在后台下载
对于一个巨大的下载,使用wget选项-b在后台下载,如下所示。
$ wget -b http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2 Continuing in background, pid 1984. Output will be written to `wget-log'.
它将启动下载并将shell提示信息返回给您。您可以随时使用tail -f检查下载的状态,如下所示。
$ tail -f wget-log Saving to: `strx25-0.9.2.1.tar.bz2.4' 0K .......... .......... .......... .......... .......... 1% 65.5K 57s 50K .......... .......... .......... .......... .......... 2% 85.9K 49s 100K .......... .......... .......... .......... .......... 3% 83.3K 47s 150K .......... .......... .......... .......... .......... 5% 86.6K 45s 200K .......... .......... .......... .......... .......... 6% 33.9K 56s 250K .......... .......... .......... .......... .......... 7% 182M 46s 300K .......... .......... .......... .......... .......... 9% 57.9K 47s
另外,请务必阅读我们以前的多文档,了解如何有效地使用tail命令查看多个文件。
6、使用wget -user-agent屏蔽用户代理并显示wget,如浏览器
某些网站可能会禁止您通过识别用户代理不是浏览器来下载其页面。 因此,您可以使用-user-agent选项屏蔽用户代理,并像浏览器一样显示wget,如下所示。
$ wget --user-agent =“Mozilla / 5.0(X11; U; Linux i686; en-US; rv:1.9.0.3)Gecko / 2008092416 Firefox / 3.0.3”URL-TO-DOWNLOAD
7、使用wget -spider测试下载URL
当您要进行预定下载时,您应该检查下载是否会在预定时间内正常发生。 为此,请从日程表中精确复制该行,然后添加-spider选项进行检查。
$ wget --spider DOWNLOAD-URL
如果给出的URL是正确的,它会说
$ wget --spider download-url Spider mode enabled. Check if remote file exists. HTTP request sent, awaiting response... 200 OK Length: unspecified [text/html]Remote file exists and could contain further links, but recursion is disabled -- not retrieving.
这可以确保下载在预定的时间成功。 但是,当你提供了一个错误的URL,你会得到以下错误。
$ wget --spider download-url Spider mode enabled. Check if remote file exists. HTTP request sent, awaiting response... 404 Not FoundRemote file does not exist -- broken link!!!
您可以在以下情况下使用蜘蛛选项:
在安排下载之前检查。
以一定的时间间隔监视网站是否可用。
检查书签中的页面列表,找出哪些页面仍然存在。
8、使用wget -tries增加重试尝试的总次数
如果网络连接有问题,并且下载文件很大,下载可能会失败。 默认wget重试20次,使下载成功。
如果需要,可以使用-tries选项增加重试次数,如下所示。
$ wget --tries=75 DOWNLOAD-URL
9、使用Wget -i下载多个文件/ URL
首先,将所有下载文件或URL存储在文本文件中,如下所示:
$ cat > download-file-list.txt URL1 URL2 URL3 URL4
接下来,使用-i选项将download-file-list.txt作为wget的参数,如下所示。
$ wget -i download-file-list.txt
10、使用wget -mirror下载完整的网站
以下是您希望下载完整网站并提供本地查看时要执行的命令行。
$ wget --mirror -p --convert-links -P 指定目录 下载地址
-mirror:打开适合镜像的选项。
-p:下载正确显示给定HTML页面所需的所有文件。
–convert-links:在下载之后,转换文档中的链接以进行本地查看。
-P ./LOCAL-DIR:将所有文件和目录保存到指定的目录。
11、使用wget -reject下载时拒绝某些文件类型
您已经找到了一个有用的网站,但不想下载图片,您可以指定以下内容。
$ wget --reject=gif WEBSITE-TO-BE-DOWNLOADED
12、将消息记录到日志文件而不是stderr使用wget -o
当你想把日志重定向到日志文件而不是终端。
$ wget -o download.log DOWNLOAD-URL
13、使用wget -Q超过一定的大小时退出
如果您想在跨越5 MB时停止下载,可以使用以下wget命令行。
$ wget -Q5m -i FILE-WHICH-HAS-URLS
注意:当您下载单个网址时,这个配额不会生效。 这与您指定单个文件时所有将下载的配额大小无关。 这个配额只适用于递归下载。
14、使用wget -r -A仅下载某些文件类型
你可以在下面的情况下使用它:
从网站下载所有图像
从网站下载所有视频
从网站下载所有的PDF文件
$ wget -r -A.pdf http://url-to-webpage-with-pdfs/
15、使用wget下载FTP
您可以使用wget执行FTP下载,如下所示。
匿名FTP下载使用Wget
$ wget ftp-url
使用用户名和密码认证的wget使用FTP下载。
$ wget --ftp-user=USERNAME --ftp-password=PASSWORD DOWNLOAD-URL
未经允许请勿转载:程序喵 » Linux 实用命令行 Wget 用法示例