假设我有一个bash脚本,该脚本通过一个文件,该文件包含所有已重定向的旧URL列表.
curl --location http://destination.com
将通过重定向来处理页面.但是,我对内容不感兴趣,而是对重定向点的位置感兴趣,以便我可以更新我的记录.
curl的命令行选项是什么,用于输出URL的新位置?
你想要省略--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}"
Run Code Online (Sandbox Code Playgroud)
从curl手册页:
Run Code Online (Sandbox Code Playgroud)-w, --write-out <format>
完成传输后,在stdout上显示curl显示信息.格式是一个字符串,可能包含混有任意数量变量的纯文本.格式可以指定为文字"字符串",或者您可以使用curl从带有"@filename"的文件中读取格式,并告诉curl从您编写"@ - "的stdin读取格式.
输出格式中存在的变量将由curl认为合适的值或文本替换,如下所述.所有变量都指定为%{variable_name}并输出正常%,您只需将它们写为%%.您可以使用\n,带\ r的回车符和带\ t的制表符空格输出换行符.
注意:%-symbol是win32环境中的特殊符号,使用此选项时,所有出现的%必须加倍.
可用的变量是:
...
redirect_url
如果在没有-L的情况下发出HTTP请求以跟踪重定向,则此变量将显示重定向将 带您到达的实际URL .(在7.18.2中添加)
...