我可以使用wget进行检查,但不能下载


Answers:


115

--spider为此有一个命令行参数。在这种模式下,wget不会下载文件,如果找到了资源,则其返回值为零;如果找不到资源,则其返回值为非零。试试看(在您最喜欢的shell中):

wget -q --spider address
echo $?

或者,如果您想获得完整的输出,则不要打扰-q,只需wget --spider address-nv显示一些输出,但不如默认输出。


29
请注意,wget --spider发送的是HEAD请求,而不是GET。
hammar 2011年

3
@hammer,我不确定您可能使用的是哪个版本,但是使用1.14时,wget --spider会执行HEAD,如果成功,则使用GET到相同的URL。因此,使用递归选项,对于为服务器端网站构建缓存很有用。
danorton 2014年

26

如果要通过$安静地检查?不用担心wget输出的麻烦,您可以使用:

wget -q "http://blah.meh.com/my/path" -O /dev/null

即使在只有路径的URL上也可以使用,但缺点是确实下载了某些内容,因此在检查大文件是否存在时不建议这样做。


--spiderARG设置返回代码。但这可能是因为经过4年3个月零7天,蜘蛛变得更聪明了。
约翰·雷德

Hav最近没有检查它,但是如果他们同时修复它也不会感到惊讶。
3ronco

16

您可以使用以下选项来检查文件:

wget --delete-after URL

13

是的,很简单。

wget --spider www.bluespark.co.nz

那会给你

Resolving www.bluespark.co.nz... 210.48.79.121
Connecting to www.bluespark.co.nz[210.48.79.121]:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
200 OK

-3

如果您所在的目录中只有root有权访问系统中的内容。然后,您可以使用wget www.example.com/wget-test标准用户帐户直接使用 。因此它将命中该URL,但由于没有写许可权文件而不会被保存。。这种方法对我来说很好,因为我正在使用cronjob这种方法。谢谢。

sthx


1
不应该使用...有风险,因为当有一个内置标记--spider完全
可以满足
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.