Загрузка нескольких файлов одновременно (параллельно) с пользовательскими именами файлов

В скрипте bash я пытаюсь загрузить несколько файлов параллельно, используя пользовательские имена файлов, используя одну команду (без циклов).

Я попытался с помощью aria2c:

aria2c -j2 URL1 URL2                # BAD: outputs to a single file

aria2c -j2 -Z URL1 -o 1 URL2 -o 2   # BAD: filenames taken from link (-o is ignored)

Второй игнорирует выходное имя файла, потому что, цитируя man-страницу aria2c:

При загрузке Metalink или BitTorrent вы не можете указать имя файла. Указанное здесь имя файла используется только тогда, когда URI, переданные в aria2, выполняются из командной строки без параметра --input-file, --force-sequential. Например:

$ aria2c -o myfile.zip " http://example1.com/file.zip" " http://example2.com/file.zip"

Вот чего я хочу избежать:

aria2c URL1 -o 1 &
aria2c URL2 -o 2 &
aria2c URL3 -o 3                     # BAD: slow and ugly, because aria2c is called thrice

Какие-либо предложения?

1 ответ

Решение

Aria2c поддерживает получение URI из файла.

Попробуйте записать имена файлов в файл, а затем запустите "aria2c -i uri-list.txt" или запишите их в стандартный вывод и перенаправьте их в "aria2c -i -".

С опцией -Z:

-Z, --force-sequential[=true|false] Fetch URIs in the command-line sequentially and download each URI in a separate session, like the usual command-line download utilities.

так в вашем случае:

aria2c -Z URL1 URL2 URL3 URL4  
Другие вопросы по тегам