我正在尝试使用 wget 从https://ftp.ncbi.nlm.nih.gov/blast/db/下载所有以 .tar.gz 结尾的 Betacoronavirus 文件。我可以使用 wget 并将链接粘贴到这些文件中的一个,它会很好地下载它。但是当我尝试使用某种正则表达式时,例如带有 Betacoronavirus.*.tar.gz 的东西为我一次下载它们,它不起作用。我已经尝试了很多我在其他线程上看到的东西,但仍然没有工作。
我正在尝试使用 wget 从https://ftp.ncbi.nlm.nih.gov/blast/db/下载所有以 .tar.gz 结尾的 Betacoronavirus 文件。我可以使用 wget 并将链接粘贴到这些文件中的一个,它会很好地下载它。但是当我尝试使用某种正则表达式时,例如带有 Betacoronavirus.*.tar.gz 的东西为我一次下载它们,它不起作用。我已经尝试了很多我在其他线程上看到的东西,但仍然没有工作。
使用专为传输文件而非文本而设计的协议。在这种情况下,主机名“ftp”表明您也可以通过 FTP 访问资源。wget 可以通过 FTP 进行 glob:
Betacoronavirus.*.tar.gz
当您在 wget 命令行上使用“regex”或“glob”时,它会在您当前工作目录中的本地计算机上执行。wget Betacoronavirus.*.tar.gz
在那个目录中,可能没有这样的文件并且“glob”是空的;或者,目录可能包含一些已下载的文件,然后“glob”可能会匹配该文件并尝试下载相同的文件。
无论哪种方式,这都行不通。
您需要的是远程 ftp 机器上的 glob 。您可以通过使用cli ftp 客户端来获得它。
您最好的方法(简单方法)是使用gui ftp 客户端并选择匹配的文件并单击下载。我推荐WinSCP 和 FileZilla。
高级方法是下载目录列表的 html 源代码,解析它并取出匹配的文件并在每个匹配的文件上执行 wget。鉴于您的用例,我不建议这样做。