我正在尝试了解如何使用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服务器结构的更基本的东西。
谢谢你的帮助!
发布于 2013-12-25 04:03:38
基于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/
发布于 2013-12-24 06:11:17
你不能简单地这样做(并根据需要添加--timestamping/--no-parent等)吗?
wget -r ftp://ftp.bls.gov/pub/special.requests/cew/2013/county-I似乎一次只能在一个目录级别上工作,所以如果我们从county/开始前进一步,我们可以这样做:
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/https://stackoverflow.com/questions/20751286
复制相似问题