如何使用 wget --recursive 创建包含 index.html 的目录?

如何使用 wget --recursive 创建包含 index.html 的目录?

我很高兴wget -r这些东西的工作原理和下载方式。

我已经设置了一个本地主机服务器,该服务器为网站提供服务,页面如下所示:

http://localhost:8080/
http://localhost:8080/foo
http://localhost:8080/bar
http://localhost:8080/blog/
http://localhost:8080/blog/1-and-here-the-slug

当我使用它时wget -r localhost:8080,它会创建以下结构:

.
├── static-files
│   └── ...
├── bar
├── blog
│   └── 1-and-here-the-slug
├── foo
└── index.html

barfoo1-and-here-the-slug是文件。我希望它们是包含单个文件的目录,命名index.html并且仍然不会破坏资源(CSS、JS 等)的路径。

我期望这样的事情:

.
├── static-files
│   └── ...
├── bar
│   └── index.html
├── foo
│   └── index.html
├── blog
│   ├── index.html // <---------- Also I want this one here to show the blog
│   └── 1-and-here-the-slug
│       └── index.html
└── index.html

我怎样才能做到这一点?

答案1

http://localhost:8080/blog/1-and-here-the-slug

bar、foo 和 1-and-here-the-slug 是文件。我希望它们是包含单个文件的目录,名为index.html,并且仍然不会破坏资源(CSS、JS 等)的路径。

├── blog
│   └── 1-and-here-the-slug
│       └── index.html

当您访问http://localhost:8080/blog/1-and-here-the-slug当前目录 is时blog,如果将该页面重命名为 be blog/1-and-here-the-slug/index.html,则新的当前目录将为blog/1-and-here-the-slug。因此,您将破坏资源(CSS、JS)内的相对路径(如果有)。和如果不修改文件的内部 HTML 就无法解决这个问题

您能做的最好的事情就是重命名没有任何扩展名的文件以具有 html 扩展名。

├── blog
│   └── 1-and-here-the-slug.html
  1. 保持相同的目录,您可以rename递归地使用该命令:

前任:

  find tmp -type f ! -name '*.*' | rename -nv 's/(.*)/$1.html/'
  1. 您可以创建新目录,但这会破坏相关资源(如果有)

前任:

  find tmp -type f ! -name '*.*' | while read file; do
       mv $file $file.tmp;
       mkdir $file;
       mv $file.tmp $file/index.html;
 done

您可以通过<base href="">在文件中插入标签来指定资源的良好路径来玩,但这将是一项艰巨而昂贵的工作

  1. **或者更好,使用-Ewget 参数

编辑:阅读wget手册页给你两个很好的选择

  -E
  --adjust-extension
       If a file of type application/xhtml+xml or text/html is downloaded
       and the URL does not end with the regexp \.[Hh][Tt][Mm][Ll]?, this option
       will cause the suffix .html to be appended to the local filename. 

  -k
   --convert-links
       After the download is complete, convert the links in the document to
       make them suitable for local viewing.  This affects not only the visible
       hyperlinks, but any part of the document that links to external content, 
       such as embedded images, links to style sheets, hyperlinks to non-
       HTML content, etc.

相关内容