2013-12-23 120 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

相關問題