我想知道是否可以做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
...
ls
除非服务器自己提供此类列表,否则您不能执行等效的操作。但是,您可以检索index.html
然后检查包含,例如
wget -O - http://www.example.com | grep "type=.\?text/javascript.\?"
请注意,这依赖于以某种方式格式化的 HTML——例如,在这种情况下,包含在单独的行上。如果您想正确执行此操作,我建议您解析 HTML 并以这种方式提取 javascript 包含。
让我们将这个打开的目录(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
中,因此您可以检查该文件中的信息。