遞歸下載ftp服務器上的文件

最近遇到一個問題,想下載http://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/zebrafish-fecal/v1.0/all_genomes/MGYG0002993/文件夾下嵌套的子目錄及文件,使用wget下載

wget -r -np -nH --cut-dirs=5  -P ./ http://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/zebrafish-fecal/v1.0/all_genomes/MGYG0002993/

-r:遞歸下載。下載指定目錄下的所有內(nèi)容,包括子目錄和文件。
-np:不向上導航。只下載指定目錄及其子目錄中的內(nèi)容,不會下載父目錄中的文件。防止 wget 超出指定的目錄層級,避免下載不相關的文件。
-nH:不創(chuàng)建主機名目錄。默認情況下,wget 會在當前目錄下創(chuàng)建一個以主機名命名的目錄(如 ftp.ebi.ac.uk),并將下載的文件放入其中。使用 -nH 可以避免創(chuàng)建此主機名目錄,使文件直接下載到指定的本地目錄中。
--cut-dirs=5:去掉前導目錄層級。這個選項用于去掉 URL 中指定數(shù)量的目錄層級。在這個例子中,--cut-dirs=5 表示去掉 URL 中前 5 個目錄
-P ./:指定本地保存目錄。

結果如下


image.png

進入到v1.0下面的目錄,最終只有一個index.html


image.png

下載單個文件沒問題

wget http://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/zebrafish-fecal/v1.0/all_genomes/MGYG0002993/MGYG000299300/genomes1/MGYG000299300.gff.gz

后來了解到把http改為ftp就好了

wget -r -np -nH --cut-dirs=5  -P ./ ftp://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/zebrafish-fecal/v1.0/all_genomes/MGYG0002993/

ftp (File Transfer Protocol) 代表文件傳輸協(xié)議,http代表瀏覽網(wǎng)頁和下載內(nèi)容的協(xié)議。單個文件下載時以http開頭卻可以成功是因為這里http服務器可以充當ftp服務器的代理。但是http沒有內(nèi)置的遞歸目錄傳輸功能,導致遞歸下載是不行的。

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容