如何在重定向后通过wget下载文件名
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在重定向后通过wget下载文件名相关的知识,希望对你有一定的参考价值。
我正在检索使用--content-disposition
参数重定向后提供的文件,因此文件名是正确的文件名(重定向后)
现在我如何检索文件名以供将来在shell脚本中使用?
答案
获取文件名的HTTP规范中唯一直接的方法是Content-Disposition
标头。如果没有该标头,客户端通常会根据请求URI推断出文件的名称。
在Wget的情况下(假设不存在Content-Disposition
头),它将使用原始请求的URI中提到的名称保存文件。例如,如果您使用http://example.com/afile
调用Wget,将您重定向到http://example.com/bfile
,则保存的文件将被称为afile
。这是一种防止恶意服务器覆盖当前目录中其他重要文件的安全措施,例如:你的.bashrc
。
您可以使用--trust-server-names
选项禁用此行为,在这种情况下,它将使用名称bfile
保存文件。
然后是内容处理。如果启用并且标头存在,则将使用它来命名文件。
所有这些都说明文件的最终名称有点难以衡量。最简单的方法是使用-O filename
保存文件,以便知道文件的确切名称。如果您不想这样做,那么最简单的选择是使用-nv
选项调用wget,该选项输出如下所示的行:
% wget -nv example.com
2019-04-20 10:43:48 URL:http://example.com/ [1270/1270] -> "index.html" [1]
您可以解析此输出以获取下载文件的名称。
以上是关于如何在重定向后通过wget下载文件名的主要内容,如果未能解决你的问题,请参考以下文章