wget调用
wget [option]… [URL]…
wget [选项]…[ URL ]…
Wget只会下载命令行中指定的所有URL。 URL是统一资源定位符,定义如下。
但是,可能希望更改Wget的某些默认参数。可以通过两种方式执行此操作:永久性地将适当的命令添加到.wgetrc,或在命令行上指定它。
URL格式
URL是“统一资源定位器”的缩写。统一资源定位符是可通过Internet获得的资源的紧凑字符串表示形式。Wget根据
RFC1738
识别URL语法 。这是使用最广泛的形式(方括号表示可选部分):
http://host[:port]/directory/file
ftp://host[:port]/directory/file
还可以在URL中对用户名和密码进行编码:
ftp://user:password@host/path
http://user:password@host/path
用户或密码,或两者都可以省略。如果忽略了HTTP用户名或密码,则不会发送身份验证。但如果不使用FTP用户名,将使用匿名
。如果留下FTP密码,的电子邮件地址将作为默认密码提供。
重要提示:如果在命令行中指定一个包含密码的URL,用户名和密码将通过ps
对系统上的所有用户可见。在多用户系统中,这是一个很大的安全风险。要解决这个问题,可以使用wget -i -
并将url提供给wget的标准输入,每个url在单独的一行上,以C-d
结尾。
可以在URL中将不安全字符编码为%xy
, xy是字符的ASCII值的十六进制表示。一些常见的不安全字符包括 %
(引用为%25
)、:
(引用为%3A
)和@
(引用为%40
)。有关不安全字符的完整列表,请参考RFC1738。
Wget还支持FTP url的类型特性。默认情况下,FTP文档以二进制模式(类型i
)检索,这意味着下载时不加更改。另一种有用的模式是a
(ASCII)模式,它在不同的操作系统之间转换行分隔符,因此对文本文件很有用。下面是一个例子:
ftp://host/directory/file;type=a
由于历史原因和广泛使用,两个可供选择的URL规范的变种也被支持。但这两种替代形式已弃用,将来可能会不再受支持。
仅FTP语法(受支持NcFTP
):
host:/dir/file
仅HTTP语法(由引入Netscape
):
host[:port]/dir/file
选项语法
由于Wget使用GNU getopt处理命令行参数,因此每个选项都有一个长格式和一个短格式。长选项更容易记住,但输入花一些时间。可以自由地混合使用不同的选项样式,或在命令行参数后指定选项。因此,可以这样写:
wget -r --tries=10 http://fly.srk.fer.hr/ -o log
接受参数的选项和参数之间的空格可以省略。代替 '-o log' 你可以写 '-olog'。
您可以将几个不需要参数的选项放在一起,例如:
wget -drc URL
等同于
wget -d -r -c URL
因为选项可以在参数之后指定,所以可以用--
结束它们。因此,以下将尝试下载URL -x
,报告失败到log
:
wget -o log -- -x
接受用逗号分隔列表的选项都遵守指定空列表将清除其值的约定。这对于清除.wgetrc
设置很有用。例如,如果您的.wgetrc
将exclude_directory
设置为/cgi-bin
,下面的示例将首先重置它,然后将其设置为排除/~nobody
和/~somebody
。您还可以清除.wgetrc
中的列表
wget -X '' -X /~nobody,/~somebody
大多数不接受参数的选项都是布尔选项,之所以这样命名是因为它们的状态可以用一个yes-or-no(“布尔”)变量来捕获。例如,--follow-ftp
告诉Wget从HTML文件中跟随FTP链接,另一方面,--no-glob
告诉Wget不要在FTP url上执行文件遍历。布尔选项可以是肯定的,也可以是否定的(以--no
开头)。所有这些选项共享几个属性。
除非另有说明,否则假定默认行为与该选项完成的行为相反。例如,文档中存在的--follow-ftp
假定默认为不遵循HTML页面的FTP链接。
肯定选项可以通过在选项名称前加上-no-
来否定;否定选项可以通过省略-no-
前缀来进行否定。这似乎是多余的——如果肯定选项的默认选项是不做某件事,那么为什么要提供明确地关闭它的方法呢?但是启动文件实际上可能会改变默认值。例如,在.wgetrc
中使用follow_ftp = on
会使Wget默认遵循FTP链接,而使用--no-follow-ftp
是从命令行恢复工厂默认值的唯一方法。
退出状态
如果遇到问题,Wget可能会返回几个错误代码之一。
-
0
没有问题发生。
-
1
通用错误代码。
-
2
解析错误-例如,在解析命令行选项时,“.wgetrc' 要么 '.netrc'...
-
3
文件I / O错误。
-
4
网络故障。
-
5
SSL验证失败。
-
6
用户名/密码认证失败。
-
7
协议错误。
-
8
服务器发出了错误响应。
当遇到多种类型的错误时,除了0和1以外,编号较低的退出代码优先于编号较高的退出代码。
在1.12之前的Wget版本中,Wget的退出状态往往无益且不一致。不管遇到什么问题,递归下载实际上总是返回0(成功),并且非递归获取仅返回与最近尝试过的下载相对应的状态。