前端之家收集整理的这篇文章主要介绍了
unix – Curl在下面的位置抓取远程文件名,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_
404_0@
当使用curl下载
文件时,如何跟踪
链接位置并将其用于
输出文件名(不提前知道远程
文件名)?
例如,如果点击下面的链接,您将下载一个文件名为“pythoncomplete.vim”。但是,使用curl的-O和-L选项,文件名只是原来的remote-name,一个笨拙的“download_script.PHP?src_id = 10872”。
curl -O -L http://www.vim.org/scripts/download_script.PHP?src_id=10872
为了下载具有正确文件名的文件,您必须提前知道文件的名称:
curl -o pythoncomplete.vim -L http://www.vim.org/scripts/download_script.PHP?src_id=10872
这将是非常好的,如果你可以下载文件,而不知道的名称提前,如果不是,有没有另一种方式快速下拉重定向文件通过命令行?
如果您有最新版本的curl(7.21.2或更高版本),请参阅
@jmanning2k’s answer。
我有一个旧版本的curl(像7.19.7与雪豹),做两个请求:一个HEAD从响应头获取文件名,然后一个GET:
url="http://www.vim.org/scripts/download_script.PHP?src_id=10872"
filename=$(curl -sI $url | grep -o -E 'filename=.*$' | sed -e 's/filename=//')
curl -o $filename -L $url