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

问题描述 投票:0回答:3

从目录下载时是否可以在 wget 查询中使用通配符?基本上,我有一个网站,比如,

www.download.example.com/dir/version/package.rpm
。然而,版本目录一直在变化,有时包含多个RPM包。是否有一个 wget 查询只能获取我以及
version
目录中的所有包,而不知道该版本是什么?在我的理想世界中,查询将类似于:

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

如果有办法用

curl
做到这一点,那也可以。

curl download wget
3个回答
37
投票

您不能在

wget
中使用通配符,但
-A
标志应该可以使用。来自 wget 手册页

您想要从 http 服务器上的目录下载所有 gif。您尝试过

wget http://www.server.com/dir/*.gif
,但这不起作用,因为 http 检索不支持通配符。在这种情况下,请使用:
wget -r -l1 --no-parent -A.gif http://www.server.com/dir/

编辑:找到一个相关问题

关于目录:

有一个名为

LFTP
的实用程序,它对通配符有一些支持。查看 manpage。还有另一个关于 Linux 和 Unix 的问题涵盖了它在与您类似的场景中的用法。


16
投票

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

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

此外,您还可以将其与 
-A

-R
参数结合起来来过滤结果。
    


3
投票

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
列表中的目录。 (?)
    

© www.soinside.com 2019 - 2024. All rights reserved.