Как я могу скачать несколько файлов с помощью wget? Я также хочу переименовать файлы. Вот команды, которые я запускаю одна за другой (копирование / вставка на терминал):

    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..

Что я могу сделать, чтобы загрузить все эти файлы один за другим?

1 ответ1

2

Вы, вероятно, хотите короткий сценарий оболочки, как это:

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

Где filelist - текстовый файл, содержащий каждую ссылку для скачивания, одну за другой. ${line##*/} извлечет само имя файла и, следовательно, выдаст что-то похожее на следующие команды:

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

Если вы хотите запустить их параллельно, вы можете просто обернуть строку wget внутри скобок, чтобы запустить ее в подоболочке.

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

Или добавить амперсанд. Это, однако, будет означать, что загрузка все равно будет выполняться после отмены сценария. Вам придется убивать их вручную для каждого процесса.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .