unix – Curl在下面的位置抓取远程文件名

前端之家收集整理的这篇文章主要介绍了unix – Curl在下面的位置抓取远程文件名前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当使用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

猜你在找的Bash相关文章