1

我正在尝试使用 curl 下载以下格式的一系列文件:

http://example.com/001.jpg

..

http://example.com/999.jpg

所以我使用了这个命令:

时间卷曲 " http://example.com/[0-9][0-9][0-9].jpg " -o "#1#2#3.gif"

但是有些文件不存在,该命令将在我端创建文件,但实际上它只会包含错误页面。

我需要一种方法让 curl 在下载之前检查它是否存在于远程服务器上。

我知道 wget 可以做到,但 wget 似乎需要大约 5 倍的时间才能运行。我在 wget 中尝试过的命令是这样的:

时间 wget http://example.com/ {0..9}{0..9}{0..9}.jpg

4

1 回答 1

1

尝试 -f/--fail 选项:

(HTTP)在服务器错误时静默失败(根本没有输出)。这样做主要是为了更好地使脚本等更好地处理失败的尝试。在正常情况下,当 HTTP 服务器无法传递文档时,它会返回一个 HTML 文档来说明这一点(通常还描述了原因等等)。该标志将阻止 curl 输出该标志并返回错误 22。

此方法不是万无一失的,有时会出现不成功的响应代码,尤其是在涉及身份验证时(响应代码 401 和 407)。

于 2009-07-22T09:39:53.893 回答