![递归 wget 给出“在给定范围内找到无效字符”](https://linux22.com/image/92213/%E9%80%92%E5%BD%92%20wget%20%E7%BB%99%E5%87%BA%E2%80%9C%E5%9C%A8%E7%BB%99%E5%AE%9A%E8%8C%83%E5%9B%B4%E5%86%85%E6%89%BE%E5%88%B0%E6%97%A0%E6%95%88%E5%AD%97%E7%AC%A6%E2%80%9D.png)
尝试使用递归方式获取目录的内容
wget -r --no-parent [directory URL]
我收到以下错误
Warning: Invalid character is found in given range. A specified range MUST
Warning: have only digits in 'start'-'stop'. The server's response to this
Warning: request is uncertain.
我该如何解决?
URL 采用以下形式:
wget -r --no-parent https://prefix.domain.suffix.suffix/microsite/prefix.domain.suffix.suffix/
当我省略时,https://
我从以下位置收到此消息wget
:
URL transformed to HTTPS due to an HSTS policy
其次是:
HTTP request sent, awaiting response... 404 Not Found 2016-08-11 14:35:37 ERROR 404: Not Found.
答案1
您wget
实际上是否符号链接(或硬链接)到curl
,如下所示关于超级用户的类似问题
一种简单的检查方法是不带参数运行它,如下所示。
首先,在我的系统上,我添加了一个链接来创建我认为您面临的场景,因此您不需要运行这些命令:
$ cd /opt/local/bin
$ ls -l wget curl
-rwxr-xr-x 1 root admin 181204 May 30 03:36 curl
-rwxr-xr-x 1 root admin 512932 Apr 30 16:42 wget
这是来自 wget 的使用错误消息:
$ ./wget
wget: missing URL
Usage: wget [OPTION]... [URL]...
Try `wget --help' for more options.
我将其移到一边并创建一个硬链接:
$ mv wget wget_save
$ ln curl wget
我可以通过按 inode 列出来确认它是一个链接:
$ ls -li | egrep '(curl|wget)'
68507780 -rwxr-xr-x 2 root admin 181204 May 30 03:36 curl
68507780 -rwxr-xr-x 2 root admin 181204 May 30 03:36 wget
67018610 -rwxr-xr-x 1 root admin 512932 Apr 30 16:42 wget_save
然后我执行路径名为“wget”的符号链接二进制文件,但您可以看到使用消息表明它实际上是一个curl 二进制文件,而不是wget。
这就是我建议你测试的。不带参数运行 wget:
$ ./wget
curl: try 'curl --help' or 'curl --manual' for more information
错误的原因是您正在使用-r
的独立选项wget
,但由于可执行文件实际上是curl
,因此它返回一个使用错误。