[問題] wget有批次下載的功能嗎

作者: winstonw (ww) 看板: Linux

標題: Re: [問題] wget有批次下載的功能嗎
時間: Fri Oct 17 16:04:59 2008

※ 引述《itucson (愛吐桑)》之銘言:
: #!/usr/bin/ruby
: for i in 1..30
: fn=sprintf("http://ftp.encntc.edu.tw/Study/CH%02d.ppt",i)
: system("wget -c #{fn}")
: end
: 這樣可以嗎?
: ※ 引述《copnew (newcop)》之銘言:
: : http://ftp.encntc.edu.tw/Study
: : 上面這個網站有一些我想要的PPT資料
: : 假如說我要抓的資料網址為 http://ftp.encntc.edu.tw/Study/CH01.ppt
: : ........................ http://ftp.encntc.edu.tw/Study/CH30.ppt
: : 我試著用以下指令 wget -c http://ftp.encntc.edu.tw/Study/CH0[1-9].ppt
: : wget -c http://ftp.encntc.edu.tw/Study/CH1[0-9].ppt
: : wget -c http://ftp.encntc.edu.tw/Study/CH2[0-9].ppt
: : wget -c http://ftp.encntc.edu.tw/Study/CH30.ppt
: : 可是實際上wget 並不支援萬用字元
: : 導致我必須連續執行30次wget的指令才可以下載到所有我想要的檔案
: : 現在檔案我下載完了
: : 但還是很想知道有沒有甚麼方法可以加速我的工作效率
: : 謝謝

解A
wget -A .ppt -r -l 1 http://ftp.encntc.edu.tw/Study/

-A .ppt 表示只抓符合 .ppt 的檔案
-r 表示 recursive retrieval
-l 1 表示只抓一層目錄

解B
其實不需要這麼麻煩,還動到 shell script,只要用 curl 一行就解決了
curl -O 'http://ftp.encntc.edu.tw/Study/CH[01-30].ppt'

用 [01-30] 會自動把個位數補 0,也就是 01, 02, 03... 30
如果不需要補 0 的話就用 [1-30] 就會變成 1, 2, 3... 30