Baixando vários arquivos com parâmetros wget e handling

0

Como posso baixar vários arquivos usando o wget? Eu também quero renomear os arquivos. Aqui estão os comandos que estou executando um por um (copiar / colar no terminal):

    wget -c --load-cookies cookies.txt http://www.filesonic.com/file/812720774/PS11.rar -O part11.rar
    wget -c --load-cookies cookies.txt http://www.filesonic.com/file/812721094/PS12.rar -O part12.rar
    wget -c --load-cookies cookies.txt http://www.filesonic.com/file/812720804/PS13.rar -O part13.rar
    wget -c --load-cookies cookies.txt http://www.filesonic.com/file/812720854/PS14.rar -O part14.rar
........ and so on..

O que posso fazer para baixar todos esses arquivos um por um?

    
por coure2011 03.01.2012 / 10:42

1 resposta

2

Você provavelmente deseja um script de shell curto como este:

#!/usr/bin/env bash
while read line
do
  wget -c --load-cookies cookies.txt $line -O ${line##*/}
done < filelist

Em que filelist é um arquivo de texto que contém cada link de download, um por um. ${line##*/} extrairá o nome do arquivo e, portanto, produzirá algo semelhante aos seguintes comandos:

wget -c --load-cookies cookies.txt http://download/file1.rar -O file1.rar
wget -c --load-cookies cookies.txt http://download/file2.rar -O file2.rar
wget -c --load-cookies cookies.txt http://download/file3.rar -O file3.rar

Se você deseja executá-los em paralelo, você também pode apenas colocar a linha wget dentro dos parênteses para executá-lo em uma subcamada.

(wget -c --load-cookies cookies.txt $line -O ${line##*/})

Ou adicione um e comercial. Isso, no entanto, significa que os downloads ainda serão executados quando você cancelar o script. Você teria que matá-los manualmente para cada processo.

wget -c --load-cookies cookies.txt $line -O ${line##*/} &
    
por 03.01.2012 / 10:58