繁体   English   中英

在wget或curl查询中使用通配符

[英]Using wildcards in wget or curl query

从目录下载时是否可以在wget查询中使用通配符? 基本上,我有一个网站,比如www.download.example.com/dir/version/package.rpm 但是,版本目录一直在变化,有时包含多个RPM包。 是否有一个wget查询只能获取我和version目录中的所有软件包而不知道该版本是什么? 在我的理想世界中,查询将是这样的:

wget www.download.example.com/dir/*/*.rpm

如果有办法用curl做这个,那也行。

您不能在wget使用通配符,但-A标志应该可以使用。 wget手册页

您想从http服务器上的目录下载所有GIF。 您尝试过wget http://www.server.com/dir/*.gif ,但这不起作用,因为http检索不支持globbing。 在这种情况下,请使用: wget -r -l1 --no-parent -A.gif http://www.server.com/dir/

编辑:发现了一个相关的问题

关于目录:

有一个名为LFTP的实用程序,它对globbing有一些支持。 看一下联机帮助页 还有一个关于Linux和Unix的问题 ,涵盖了在类似于你的场景中的用法。

如果您能够在查询中找到模式,则可以使用bash大括号扩展来执行此任务。

例如,在您的情况下,您可以使用以下内容:

wget www.download.example.com/dir/{version,old}/package{00..99}.rpm

此外,您可以将其与-A-R参数结合使用以过滤结果。

虽然上面的解决方案有点工作,但是当你只想下载某些目录时它会失败,但不是全部。 例如,如果你有:

http://site.io/like/
http://site.io/like2/
http://site.io/nolike/

而是将所需的目录名称放在文本文件中,例如: dirs.txt:

like/
like2/

然后使用wget和以下命令选项-i dirs.txt -B <base-URL>如下所示:

wget -nH -nc -np -r -e robots=off -R "index.html*" -i dirs.txt -B http://site.io/

因为,我认为你不能使用-A-R列表中的目录。 (?)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM