首页 > 解决方案 > wget 无法使用 --include 获取 4 级目录

问题描述

现在我正在尝试创建一个脚本。其中,根据输入下载一组目录。

例如 -

wget -r -nH --cut-dirs=2 --no-parent --reject "index.html*" \
    --include-directories 'apache/hadoop/common/'           \
    http://mirrors.estointernet.in/apache/hadoop/

这工作正常。

但是,当我试图为从apache/hadoop/common/to的路径添加一个级别时apache/hadoop/common/current/

wget -r -nH --cut-dirs=2 --no-parent --reject "index.html*" \
    --include-directories 'apache/hadoop/common/current/'   \
    http://mirrors.estointernet.in/apache/hadoop/

它不工作。

有什么办法可以做到这一点?

标签: bashwget

解决方案


您需要调整下载的 URL。尝试这个:

wget -r -nH --cut-dirs=2 --no-parent --reject "index.html*" \
    --include-directories 'apache/hadoop/common/current/'   \
    http://mirrors.estointernet.in/apache/hadoop/common/current

您的原始命令不起作用的原因是因为 wget 下载http://mirrors.estointernet.in/apache/hadoop/index.html包含:

<html>
<head><title>Index of /apache/hadoop/</title></head>
<body bgcolor="white">
<h1>Index of /apache/hadoop/</h1><hr><pre><a href="../">../</a>
<a href="common/">common/</a>                                            20-Nov-2018 03:24                   -
<a href="core/">core/</a>                                              20-Nov-2018 03:24                   -
<a href="ozone/">ozone/</a>                                             19-Nov-2018 20:22                   -
</pre><hr></body>
</html>

wget 查看该文件中的所有链接,它们是:

/apache
/apache/hadoop/common
/apache/hadoop/core
/apache/hadoop/ozone

这些链接都不匹配 --include-directories 'apache/hadoop/common/current/'参数,所以它退出。


推荐阅读