2016-03-03 36 views
0

有沒有辦法阻止wget創建空目錄?我需要的大多數文件都在一個深度級別找到,即在/1/2/的文件夾2中,但我需要使用無限遞歸,因爲有時我需要的文件位於1/2/3/或更深處。或者至少,我暫時需要無限遞歸,直到找出感興趣文件所在的最大深度。wget - 防止創建空目錄

現在,我使用

wget -nH --cut-dirs=3 -rl 0 -A "*assembly*.txt" ftp://ftp.ncbi.nlm.nih.gov/genomes/genbank/bacteria 

它得到我需要的所有文件,但我留下了一堆空目錄。我更喜歡目錄結構/bacteria/organism/*assembly*.txt,但如果創建多個子目錄無法避免,我想至少停止wget創建空目錄。當然,我可以在運行wget後刪除空目錄,但是如果可能,我想先停止wget創建它們。

+0

wget -nH --cut-dirs=2 -rl 2 -A "*assembly*.txt" ftp://ftp.ncbi.nlm.nih.gov/genomes/genbank/bacteria 

BTW:除非有一些變化這個規則,你可能只是這樣做您感興趣的文件路徑中的目錄?還是他們離開目錄? – 2016-03-03 14:44:07

+0

由wget創建的空目錄不一定在我感興趣的文件的路徑上。我確實需要wget來查看它創建的所有子目錄,但是隻有下載文件/創建目錄(如果它有我感興趣的文件)。因此,如果目錄沒有我感興趣的文件,它不應該在我的系統上創建該目錄。 – truthling

+0

也可以使用選項'--no-directories'來停止wget創建目錄。 – user3132194

回答

1

簡短回答:您無法阻止創建目錄。

您可以在目錄做後期處理,但:

find bacteria/ -type d -empty -exec rmdir {} \; 

在一堆這些目錄中尋找它的出現,像你說的,那(包括非常繁忙的一個大腸桿菌)。唯一匹配*assembly*.txt的文件存儲在bacteria下面的第一個目錄中。如果你希望你的目錄結構,開始在bacteria/你需要改變​​至2,而不是3

+0

不幸的是,我需要的'* assembly * .txt'文件不到1/3。 '--cut-dirs = 3'爲我工作,導致'。/細菌/有機體/ *組裝* .txt',這是合理的,因爲它削減了1 - ftp.ncbi.nlm.nih.gov,2 - 基因組,來自'ftp:// ftp.ncbi.nlm.nih.gov/genomes/genbank/bacteria'的3 - genbank,只剩下'細菌/'。看起來後處理是wget的方式。我相信我可以用'lftp'得到我想要的結果,並且一旦測試就會報告回來。 – truthling

+0

'-nH'(無主機名)選項已經爲您刪除了'ftp.ncbi.nlm.nih.gov'文件夾。或者它應該。 – miken32

+0

你的推理是有道理的,我不得不撥弄'--cut-dirs'來得到我想要的,因爲它並沒有給我我最初的預期。奇怪。 – truthling