当前位置:  开发笔记 > 前端 > 正文

wget -k在Windows和Linux上以不同方式转换文件

如何解决《wget-k在Windows和Linux上以不同方式转换文件》经验,为你挑选了1个好方法。

我已经为Windows和Linux 获得了GNU Wget 1.10.2,并且-k选项在这两个上表现不同.

-k, - convert-links使下载的HTML中的链接指向本地文件.

在Windows上它产生:

www.example.com/index.html
www.example.com/index.html@page=about
www.example.com/index.html@page=contact
www.example.com/index.html@page=sitemap

在Linux上它产生:

www.example.com/index.html
www.example.com/index.html?page=about
www.example.com/index.html?page=contact
www.example.com/index.html?page=sitemap

这在linux中是有问题的,因为当我通过Apache服务镜像时,它不会区分4个生成的页面,因为在questionmark()字符之后的部分被用作文件的查询字符串.

关于如何控制这个的任何想法?

谢谢



1> Can Berk Güd..:

您不能在NTFS或FAT32上的文件名中使用问号(?).这就是wget使用at符号(@)的原因.

在Linux中,大多数文件系统上只禁止使用斜杠(/),因此wget使用问号(因为它是URI的一部分).

您可以使用--restrict-file-names=unix或强制执行任一行为--restrict-file-names=windows.

从wget文档:

当mode设置为"unix"时,Wget将转义字符'/'和0-31和128-159范围内的控制字符.这是类Unix操作系统的默认设置.

当mode设置为"windows"时,Wget会转义字符'\','|','/',':','?',''','*','<','>'和0-31和128-159范围内的控制字符.除此之外,Windows模式下的Wget使用'+'代替':'来分隔本地文件名中的主机和端口,并使用'@'代替' ?将文件名的查询部分与其余部分分开.因此,www.xemacs.org:4300/search.pl?input=blah在Unix模式下保存为' ' 的URL将www.xemacs.org+4300/search.pl@input=blah在Windows模式下保存为' '.此模式是Windows上的默认模式.

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有