2013-11-23 37 views
3

在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的下載,你不能指定文件名。這裏指定的文件名只有在輸入到aria2的URI通過沒有--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 

有什麼建議?

+0

是什麼讓你相信,多次調用是慢? –

+0

或者,您可以下載這些文件,然後重命名它們。但是,輸入文件允許您指定輸出文件的名稱。 –

回答

9

Aria2c supports getting URIs from a file

試着寫你的文件名到該文件,然後運行「aria2c -i URI的LIST.TXT」或把它們寫到標準輸出和管他們「aria2c -i - 」

+0

問題是我的URL包含變量。 – octosquidopus

+1

你的意思是shell變量嗎?你仍然可以使用-i。就像這樣:#(echo「http://foo/bar/file-$VAR1.txt」; echo「http://bar/baz/file-$VAR2.txt」)| aria2c -i - – ArtemB