Sim, é -c
opção.
--continue
Continue getting a partially-downloaded file. This is useful when you want to
finish up a download started by a previous instance of Wget, or by another
program.
Se o arquivo for o mesmo, a segunda tentativa de download será interrompida.
$ wget -c https://cdn.sstatic.net/askubuntu/img/logo.png
...
Saving to: ‘logo.png’
...
$ wget -c https://cdn.sstatic.net/askubuntu/img/logo.png
...
The file is already fully retrieved; nothing to do.
Advertências (dos comentários de jofel)
Se o arquivo foi alterado no servidor, a -c
opção pode fornecer resultados incorretos.
Com -c
, o wget simplesmente pede ao servidor quaisquer dados além da parte do arquivo já baixado, nada mais. Ele não verifica se houve alguma alteração na parte do arquivo que já foi baixada. Assim, você pode ter um arquivo corrompido, que é uma mistura do arquivo antigo e do novo.
Teste local
Você pode testá-lo executando web-servidor local simples como seguir (graças a @roadmr 's resposta ):
Abra as janelas de um terminal e digite:
cd /path/to/parent-download-dir/
python -m SimpleHTTPServer
Agora abra outro terminal e faça:
wget -c http://localhost:8000/filename-to-download
Observe que filename-to-download
é o arquivo localizado no /path/to/parent-download-dir/
qual queremos fazer o download.
Agora, se você executar o comando wget por várias vezes, verá:
The file is already fully retrieved; nothing to do.
Ok, agora vá para o /path/to/parent-download-dir/
diretório e adicione algo ao arquivo de origem, por exemplo, se for um arquivo de texto, adicione uma linha extra simples e salve o arquivo. Agora tente com wget -c ...
. Ótimo, agora você verá o download novamente do arquivo, mas já o baixou antes.
Razão: por que fazer novamente o download?
porque seu tamanho mudou para um tamanho maior que o arquivo baixado antigo e nada mais.