当我输入以下内容时:
http://www.archlinux.org/packages/extra/x86_64/enca/download/
wget 正在下载 index.html 而不是正确的文件:enca-1.13-2-x86_64.pkg.tar.xz
当我使用 Windows 机器并导航到同一位置时,它会正确提示我下载 tarball 包。
答案1
嗯,嗯,对我有用!我在 CentOS5 机器上使用 wget 1.11.4,仅供参考。
如果我做卷曲,我会得到:
$ curl -Iv http://www.archlinux.org/packages/extra/x86_64/enca/download/
* About to connect() to www.archlinux.org port 80
* Trying 66.211.214.131... connected
* Connected to www.archlinux.org (66.211.214.131) port 80
> HEAD /packages/extra/x86_64/enca/download/ HTTP/1.1
> User-Agent: curl/7.15.5 (i686-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5
> Host: www.archlinux.org
> Accept: */*
>
< HTTP/1.1 302 FOUND
HTTP/1.1 302 FOUND
< Date: Sun, 04 Mar 2012 19:20:24 GMT
Date: Sun, 04 Mar 2012 19:20:24 GMT
< Server: Apache
Server: Apache
< Location: http://mirrors.kernel.org/archlinux/extra/os/x86_64/enca-1.13-2-x86_64.pkg.tar.xz
Location: http://mirrors.kernel.org/archlinux/extra/os/x86_64/enca-1.13-2-x86_64.pkg.tar.xz
因此重定向是正确的,至少在我击中的镜像上是如此。
答案2
请尝试:
wget --trust-server-nameshttp://www.archlinux.org/packages/extra/x86_64/enca/download/
“--信任服务器名称
如果设置为开启,则在重定向时,重定向 URL 的最后一个组件将用作本地文件名。默认情况下,它使用原始 URL 中的最后一个组件。