2013-12-19 30 views
1

我想從linux命令行下載多個文件,鏈接結構與此https://archive.org/compress/tmg2002-10-23/formats=Flac,Metadata,Text,Checksums,Flac%20FingerPrint一樣刺激,可變部分在中間/tmg2002-10-23/中有不同的日期。如何使用wget/aria2等下載管理器下載所有文件?我試着用/ TMG * /兩的wget/aria2,但它只是不工作解決用wget/aria2下載變量的url路徑

+0

那麼,在Bash中使用'*'會讓shell認爲這是文件系統中的一個文件,所以它會嘗試做某種文件擴展。這是行不通的。您需要的是位於該服務器上的HTML頁面,您可以從中獲取可用日期。或者,如果您對日期範圍或多或少有所瞭解,則可能只想列舉該範圍內的日期,只需嘗試加載它們,並忽略未命中的日子。但是,這非常蠻力。 –

回答

1

改編自here

for d in {0..365} 
do 
    dt=$(date -d "2012-01-01 + $d days" +'%Y-%m-%d') 
    wget "https://archive.org/compress/tmg$dt/formats=Flac,Metadata,Text,Checksums,Flac%20FingerPrint" 
done 

更改「2012-01-01」爲您要開始的日期,並在開始日期之後更改365天的下載天數。 date函數已經爲您處理了閏年。

+0

注意:如果您使用的是Mac,由於'date'函數與Linux不同,這將不起作用。 –

+0

這是工作。謝謝。 – user3070484

0

例如

for i in "2002-10-23" "2002-10-22" 
do wget "https://archive.org/compress/tmg${i}/formats=Flac,Metadata,Text,Checksums,Flac%20FingerPrint" 
done 

您應該包括wget的正確的選項。當然,腳本可能更復雜。