Estou tentando usar o wget para baixar todos os arquivos do Betacoronavirus que terminam em .tar.gz de https://ftp.ncbi.nlm.nih.gov/blast/db/ . Eu posso usar wget e colar o link para um único desses arquivos, e ele fará o download muito bem. Mas quando tento usar algum tipo de regex, por exemplo, algo com Betacoronavirus.*.tar.gz para baixá-los todos de uma vez para mim, não funciona. Eu tentei várias coisas que eu vi em alguns outros tópicos, mas ainda assim, nenhum funciona.
Use um protocolo projetado para transferir arquivos em vez de texto. Nesse caso, o nome do host "ftp" sugere que você também pode acessar os recursos via FTP. wget pode glob via FTP:
Quando você usa "regex" ou "glob"
Betacoronavirus.*.tar.gz
na linha de comando wget, ele está sendo executado em sua máquina local em seu diretório de trabalho atual.wget Betacoronavirus.*.tar.gz
Nesse diretório, pode não haver tal arquivo e o "glob" está vazio; Alternativamente, o diretório pode conter algum arquivo já baixado, então o "glob" pode corresponder a isso e tentar baixar o mesmo arquivo.
De qualquer forma, isso não funcionará.
O que você precisa é de um glob na máquina ftp remota . Você pode obter isso usando um cliente cli ftp .
Sua melhor maneira (maneira simples) seria usar um cliente ftp gui e selecionar os arquivos correspondentes e clicar em download . Eu recomendo WinSCP e FileZilla .
A maneira avançada seria baixar a fonte html para a listagem de diretórios, analisá-la e retirar os arquivos correspondentes e executar wget em cada arquivo correspondente. Eu não recomendo isso, dado o seu caso de uso.