使用wget从ftp服务器下载选择目录

时间:2013-12-23 21:15:41

标签: linux unix ubuntu ftp wget

我正在尝试了解如何使用wget从一堆不同的ftp站点下载来自美国政府的经济数据的特定目录。

作为一个简单的例子,我知道我可以使用如下命令下载整个目录:

wget  --timestamping  --recursive --no-parent ftp://ftp.bls.gov/pub/special.requests/cew/2013/county/

但我设想运行更复杂的下载,我可能希望限制下载到少数目录。所以我一直在寻找--include选项。但我真的不明白它是如何运作的。具体来说,为什么这不起作用:

wget --timestamping --recursive -I /pub/special.requests/cew/2013/county/ ftp://ftp.bls.gov/pub/special.requests/cew/

以下确实有效,因为它下载文件,但下载方式超出了我的需要(2013目录中的所有内容,而不仅仅是县子目录):

wget --timestamping --recursive -I /pub/special.requests/cew/2013/ ftp://ftp.bls.gov/pub/special.requests/cew/

我不知道我是不是对wget有所了解,或者我的问题是否与ftp服务器结构更为重要。

感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

根据this doc,似乎wget的过滤功能非常有限。

使用--recursive选项后,wget会在应用各种过滤器后下载所有链接的文档,例如--no-parent-I-X,{ {1}},-A选项。

在你的例子中:

-R

这不会下载任何内容,因为wget -r -I /pub/special.requests/cew/2013/county/ ftp://ftp.bls.gov/pub/special.requests/cew/ 选项指定仅包含与-I匹配的链接,但在页面/pub/special.requests/cew/2013/county/上没有此类链接,因此下载停止。这会有效:

/pub/special.requests/cew/

...因为在这种情况下,wget -r -I /pub/special.requests/cew/2013/county/ ftp://ftp.bls.gov/pub/special.requests/cew/2013/ 页面确实有/pub/special.requests/cew/2013/

的链接

顺便说一句,您可以在此文档中找到比county/页面更多详细信息:

http://www.gnu.org/software/wget/manual/html_node/

答案 1 :(得分:2)

你不能简单地做(并根据需要添加--timestamping / - no-parent等)

 wget -r ftp://ftp.bls.gov/pub/special.requests/cew/2013/county

-I似乎一次只能在一个目录级别工作,所以如果我们从县/我们迈出一步,我们可以做到:

 wget -r -I /pub/special.requests/cew/2013/county/ ftp://ftp.bls.gov/pub/special.requests/cew/2013/

但显然我们无法继续前进并做到

 wget -r -I /pub/special.requests/cew/2013/county/ ftp://ftp.bls.gov/pub/special.requests/cew/