有一个目录正在通过网络提供服务,我有兴趣对其进行监视。它的内容是我正在使用的各种版本的软件,我想编写一个我可以运行的脚本来检查那里有什么,并下载比我已经拥有的更新的任何东西。
有没有办法,比如使用 wget
或其他方法来获取目录列表。我试过在目录上使用 wget
,它给了我 html。为了避免必须解析 html 文档,是否有一种方法可以检索像 ls
那样的简单列表?
最佳答案
我只是想出了一个办法:
$ wget --spider -r --no-parent http://some.served.dir.ca/
它非常冗长,因此您需要通过 grep
进行几次管道传输,具体取决于您所追求的内容,但信息就在那里。它看起来像打印到 stderr,因此附加 2>&1
以让 grep
处理它。我搜索“\.tar\.gz”以找到该站点必须提供的所有 tarball。
请注意,wget
将临时文件写入工作目录,但不会清除其临时目录。如果这是一个问题,您可以更改到一个临时目录:
$ (cd /tmp && wget --spider -r --no-parent http://some.served.dir.ca/)
关于http - 通过 http 获取目录列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4496182/