在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)
第二个忽略输出文件名,因为引用aria2c手册页:
在Metalink或BitTorrent下载中,您不能指定文件名。此处指定的文件名仅当通过没有--input file、--force sequence选项的命令行完成提供给aria2的URI时才使用。例如:
$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
有什么建议吗?
带-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
Aria2c支持从文件中获取URI。
尝试将文件名写入文件中,然后运行"aria2c-i uri list.txt",或者将它们写入stdout并通过管道传输到"aria2c-i-"