假設我有一個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