Eu tenho uma lista de cerca de 200 servidores que contêm links para arquivos individuais. Para esta pergunta, vamos fingir que são arquivos .txt. Preciso baixar todos os arquivos, porém alguns servidores possuem apenas a versão compactada, e não a original e alguns servidores possuem ambas, a compactação utilizada é bzip2.
Isso significa que um servidor pode ter os seguintes arquivos;
foo.txt.bz2
bar.txt
bar.txt.bz2
Eu disse ao wget para baixar apenas arquivos .txt e .txt.bz2 e estou usando no-clobber para evitar que o mesmo arquivo seja baixado de cada servidor. No entanto, depois que um arquivo compactado é baixado, ele é descompactado; o original é mantido, os arquivos bz2 não. Isso significa que o wget está baixando os mesmos arquivos bz2 de todos os servidores porque não possui uma versão compactada localmente.
Como posso dizer ao wget paranãobaixe arquivos .bz2 quando já tiver a versão descompactada (por exemplo, não baixe foo.txt.bz2 se foo.txt já existir).
Obrigado
Responder1
Eu encadearia os wget
comandos desta forma:
wget http://example.com foo.txt || wget http://example.com/foo.txt.bz2 && bzip -d foo.txt.bz2
O bzip -d
comando irá descompactar o arquivo, mas somente se o wget for bem-sucedido.