使用WGET下载网站/目录中的所有.tar.gz文件

5

我试图创建一个别名/脚本,使用wget从网站/目录下载所有特定的文件扩展名,但我觉得可能有比我想出来的更简单的方法。

现在我从Google和手册中查找到的代码是:

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

所以在上面的示例中,我正在尝试从OpenVZ预创建模板目录下载所有.tar.gz文件。
上述代码可以正常工作,但我必须手动指定--cut-dirs=2,这将剪切掉通常会创建的/template/precreated/目录结构,并且它还会下载robots.txt文件。
现在,这并不一定是问题,很容易只需删除robots.txt文件,但我希望我在man页面中错过了某些东西,可以让我做到这一点而无需指定要剪切的目录结构...
提前感谢任何帮助,非常感谢!
2个回答

7

使用-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

是的,但我正在尝试创建一个Bash脚本,只需提供网站URL即可完成其余操作...因此,实质上是sh dl.sh tar.gz,它将下载所有.tar.gz文件。 - sMyles

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接