我目前正在使用--content-disposition
参数检索重定向后提供的文件,因此文件名是正确的文件名(重定向后)
现在如何检索文件名以备将来在我的 shell 脚本中使用?
HTTP 规范中获取文件名的唯一直接方法是Content-Disposition
标头。如果没有该标头,客户端通常会根据请求 URI 推断出文件的名称。
在 Wget 的情况下(假设不Content-Disposition
存在标头),它将使用原始请求的 URI 中提到的名称保存文件。例如,如果您调用 Wgethttp://example.com/afile
将您重定向到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]
您可以解析此输出以获取下载文件的名称。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句