2013-12-23 101 views
4

我想了解如何使用wget从一堆不同的ftp站点下载特定的目录与美国政府的经济数据。使用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年目录中的一切,只是VS县子目录) :

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

我不能告诉,如果我不理解一些有关wget的,或者如果我的问题是与一些更根本的FTP服务器结构。

感谢您的帮助!

+0

我的安装的wget版本没有记录“--include”选项,尽管如果我指定它,它不会显示任何错误。您是否尝试过“--include-directories”? –

+0

感谢Lotharyx,我修正了错字,尽管我的问题依然存在。 –

+0

尝试“--include-directories = whatever ...” - 我阅读的手册页显示存在等号。我没有一个ftp服务器,方便实际尝试。 –

回答

3

基于this doc似乎wget的过滤功能非常有限。

当使用--recursive选项,wget将应用各种过滤器,如--no-parent-I-X-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/

顺便说一句,你可以在这个文档不是man页面上找到更多的细节:

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

1

不能你只需做(并添加--timestamping/- 无父等需要)

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/ 
+2

根据[docs](http://www.gnu.org/software/wget/manual/html_node/Directory_002dBased-Limits.html#Directory_002dBased-Limits),'-I'的参数必须是绝对路径。 。 – janos

相关问题