假设我有一个bash脚本,它通过一个包含所有已重定向的旧URL列表的文件。curl编译重定向页面列表
curl --location http://destination.com
将通过重定向来处理页面。但是,我对内容不感兴趣,但对重定向点的位置感兴趣,以便我可以更新我的记录。
curl的命令行选项输出URL的新位置是什么?
假设我有一个bash脚本,它通过一个包含所有已重定向的旧URL列表的文件。curl编译重定向页面列表
curl --location http://destination.com
将通过重定向来处理页面。但是,我对内容不感兴趣,但对重定向点的位置感兴趣,以便我可以更新我的记录。
curl的命令行选项输出URL的新位置是什么?
您WOU要离开了--location/-L
标志,并使用-w
,检查redirect_url
变量。 curl -w "%{redirect_url}" http://someurl.com
应该这样做。
用于脚本:
REDIRECT=`curl -w "%{redirect_url}" http://someurl.com`
echo "http://someurl.com redirects to: ${REDIRECT}"
-w, --write-out <format>
作出标准输出卷曲显示信息的传递完成之后。格式是一个字符串,可以包含与任何数字 变量混合的纯文本。格式可以指定为字符串“string”,或者可以使用curl从具有“@filename”的文件中读取格式,并通过 告诉curl从您写为“@ - ”的stdin读取格式。
输出格式中的变量将被替换为 的值或curl认为合适的文本,如下所述。所有变量 被指定为%{variable_name}并输出一个正常的%,您只需将它们写为%%即可 。您可以使用\ n输出换行符,一个滑块 以\ r返回,标签空间以\ t返回。
注:的%-symbol是在Win32的环境下, 所有%出现必须使用此选项时加倍的特殊符号。
可用的变量有:
...
redirect_url
当一个HTTP请求没有-L而遵循 重定向时,这个变量将显示实际的URL重定向将 带你。 (在7.18.2中增加)
...
man curl
然后
search redirect_url
REDIRECT_URL当一个HTTP请求没有-L作出跟进 重定向,这个变量将显示实际的URL重定向会 带你去。 (7.18.2中新增 )
上面的变量是-w/--write-out <format>
这可能会实现(作为起点)
curl -sI google.com | head -1 | grep 301 | wc -l