2013-01-23 114 views
5

因此,我试图创建一个别名/脚本使用wget从网站/目录下载所有特定的扩展名,但我觉得必须有一个更简单的方法我想到了什么。使用WGET从网站/目录下载所有.tar.gz文件

现在的代码我从谷歌搜索和手册页想出是:

wget -r -l1 -nH --cut-dirs=2 --no-parent -A.tar.gz --no-directories http://download.openvz.org/template/precreated/ 
的例子

所以上面我试图从下载所有的文件名为.tar.gz OpenVZ预先创建的模板目录。

上面的代码可以正常工作,但我必须手动指定--cut-dirs = 2,它会切掉通常会创建的/ template/precreated /目录结构,并且它还会下载robots.txt文件。

现在这不一定是一个问题,只是删除robots.txt文件很容易,但我希望我错过了手册页中的某些内容,这将允许我执行相同的操作,而无需指定目录结构切出...

感谢您提前提供任何帮助,非常感谢!

回答

6

使用-R选项

-R robots.txt,unwanted-file.txt 

作为您不想要的文件的拒绝列表(以逗号分隔)。

至于脚本这样的:

URL=http://download.openvz.org/template/precreated/ 
CUTS=`echo ${URL#http://} | awk -F '/' '{print NF -2}'` 
wget -r -l1 -nH --cut-dirs=${CUTS} --no-parent -A.tar.gz --no-directories -R robots.txt ${URL} 

应该工作基础上在URL中的子目录。

2

我建议,如果这是真的很烦,你就不必做了很多,只写一个非常短的两行脚本来删除帐户:

wget -r -l1 -nH --cut-dirs=2 --no-parent -A.tar.gz --no-directories http://download.openvz.org/template/precreated/ 
rm robots.txt 
+0

是的,但我想创建一个bash脚本,我可以提供网站的网址,并让它做剩下的...所以在本质上,sh dl.sh tar.gz,它会下载所有.tar 。广州 – sMyles