11

我想知道是否可以做ls一个 URL,例如,我可以查看网站中可用的 *.js 文件。就像是:

wget --list-files -A.js stackoverflow.com

并得到

ajax/libs/jquery/1.7.1/jquery.min.js
js/full.js
js/stub.js
...
4

2 回答 2

7

ls除非服务器自己提供此类列表,否则您不能执行等效的操作。但是,您可以检索index.html然后检查包含,例如

wget -O - http://www.example.com | grep "type=.\?text/javascript.\?"

请注意,这依赖于以某种方式格式化的 HTML——例如,在这种情况下,包含在单独的行上。如果您想正确执行此操作,我建议您解析 HTML 并以这种方式提取 javascript 包含。

于 2012-05-13T11:55:24.527 回答
1

让我们将这个打开的目录(http://tug.ctan.org/macros/latex2e/required/amscls/)作为我们实验的对象。这个目录属于综合 TeX 档案网络,所以不要太担心下载恶意文件。

现在,假设我们要列出所有扩展名为pdf. 我们可以通过执行以下命令来做到这一点。

下面显示的命令会将 的输出保存wget在文件中main.log。因为wget为每个文件发送一个请求并打印有关请求的一些信息,所以我们可以grep通过输出获取属于指定目录的文件列表。

wget \
  --accept '*.pdf' \
  --reject-regex '/\?C=[A-Z];O=[A-Z]$' \
  --execute robots=off \
  --recursive \
  --level=0 \
  --no-parent \
  --spider \
  'http://tug.ctan.org/macros/latex2e/required/amscls/doc/' 2>&1 | tee main.log

现在,我们可以列出扩展名为pdf.grep

grep '^--' main.log
--2020-11-23 10:39:46--  http://tug.ctan.org/macros/latex2e/required/amscls/doc/
--2020-11-23 10:39:47--  http://tug.ctan.org/macros/latex2e/required/amscls/doc/
--2020-11-23 10:39:47--  http://tug.ctan.org/macros/latex2e/required/amscls/doc/amsbooka.pdf
--2020-11-23 10:39:47--  http://tug.ctan.org/macros/latex2e/required/amscls/doc/amsclass.pdf
--2020-11-23 10:39:47--  http://tug.ctan.org/macros/latex2e/required/amscls/doc/amsdtx.pdf
--2020-11-23 10:39:47--  http://tug.ctan.org/macros/latex2e/required/amscls/doc/amsmidx.pdf
--2020-11-23 10:39:48--  http://tug.ctan.org/macros/latex2e/required/amscls/doc/amsthdoc.pdf
--2020-11-23 10:39:48--  http://tug.ctan.org/macros/latex2e/required/amscls/doc/thmtest.pdf
--2020-11-23 10:39:48--  http://tug.ctan.org/macros/latex2e/required/amscls/doc/upref.pdf

请注意,我们还可以获取目录中所有文件的列表,然后grep在命令的输出上执行。但是,这样做会花费更多时间,因为显然为每个文件发送了一个请求。通过使用--accept,我们可以wget只发送对我们感兴趣的文件的请求。

最后但同样重要的是,文件的大小保存在 filemain.log中,因此您可以检查该文件中的信息。

于 2020-11-23T15:50:08.163 回答