Wget
如何從 BLAST 數據庫目錄中獲取所有 Betacoronavirus .tar.gz 文件?
我正在嘗試使用 wget 從https://ftp.ncbi.nlm.nih.gov/blast/db/下載所有以 .tar.gz 結尾的 Betacoronavirus 文件。我可以使用 wget 並將連結粘貼到這些文件中的一個,它會很好地下載它。但是當我嘗試使用某種正則表達式時,例如帶有 Betacoronavirus.*.tar.gz 的東西為我一次下載它們,它不起作用。我已經嘗試了很多我在其他執行緒上看到的東西,但仍然沒有工作。
使用專為傳輸文件而非文本而設計的協議。在這種情況下,主機名“ftp”表明您也可以通過 FTP 訪問資源。wget 可以通過 FTP 進行 glob:
wget 'ftp://ftp.ncbi.nlm.nih.gov:21/blast/db/Betacoronavirus.*.tar.gz'
Betacoronavirus.*.tar.gz
當您在 wget 命令行上使用“regex”或“glob”時,它會在您目前工作目錄中的本地電腦上執行。
wget Betacoronavirus.*.tar.gz
在那個目錄中,可能沒有這樣的文件並且“glob”是空的;或者,目錄可能包含一些已下載的文件,然後“glob”可能會匹配該文件並嘗試下載相同的文件。
無論哪種方式,這都行不通。
您需要的是遠端 ftp 機器上的 glob 。您可以通過使用cli ftp 客戶端來獲得它。
您最好的方法(簡單方法)是使用gui ftp 客戶端並選擇匹配的文件並點擊下載。我推薦WinSCP 和 FileZilla。
高級方法是下載目錄列表的 html 原始碼,解析它並取出匹配的文件並在每個匹配的文件上執行 wget。鑑於您的案例,我不建議這樣做。