加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 09:24:49 所属栏目:安全 来源:网络整理
导读:当使用curl下载文件时,如何跟踪链接位置并将其用于输出文件名(不提前知道远程文件名)? 例如,如果点击下面的链接,您将下载一个文件名为“pythoncomplete.vim”。但是,使用curl的-O和-L选项,文件名只是原来的remote-name,一个笨拙的“download_script.p
当使用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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读