![如何告诉 wget 使用 HTTP 重定向后面的目标文件的名称?](https://linux22.com/image/525280/%E5%A6%82%E4%BD%95%E5%91%8A%E8%AF%89%20wget%20%E4%BD%BF%E7%94%A8%20HTTP%20%E9%87%8D%E5%AE%9A%E5%90%91%E5%90%8E%E9%9D%A2%E7%9A%84%E7%9B%AE%E6%A0%87%E6%96%87%E4%BB%B6%E7%9A%84%E5%90%8D%E7%A7%B0%EF%BC%9F.png)
让我们考虑一个链接,例如 htttp://www.mysite.net/download.php?id=267,该链接重定向到 htttp://www.mysite.net/downloads/myfile.tar.gz
如果我执行“wget "htttp://www.mysite.net/download.php?id=267"”,wget 将顺利下载并将结果保存在名为“download.php?id=333”的文件中。将此文件命名为“myfile.tar.gz”会更有意义。
当然还有使用“wget -O myfile.tar.gz“htttp://www.mysite.net/download.php?id=267”的解决方法,但这不是我想要的:我希望 wget 自动做正确的事情。
有没有什么方法可以告诉 wget 使用 HTTP 重定向后面的目标文件的名称?
还有其他类似的工具可以做到这一点吗?
答案1
wget --trust-server-names=on htttp://www.mysite.net/download.php?id=267
或者trust-server-names
中的选项~/.wgetrc
。
有可能安全风险如果 HTTP 重定向到../../../../../../../../../../../../etc/passwd
答案2
我发现 lynx 也经常会获取重定向后面的文件。