リダイレクト先のアドレスを CLI で取得する方法

結論

$ curl -D - TARGET_URL というコマンドを使う。

実例

1. Edge の .deb をダウンロードしたいとします。

Image from Gyazo

2. すると、ライセンス確認画面がまず現れます。

Image from Gyazo

3. そして、以下の画像の URL が「同意してダウンロード」のリンク先のURLとなっています。

4. curl でリダイレクト先を得ます

Location: の値がリダイレクト先 URL となります。

$ curl -D - "https://go.microsoft.com/fwlink?linkid=2149051"
HTTP/1.1 302 Moved Temporarily
Content-Length: 0
Server: Kestrel
Location: https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-stable/microsoft-edge-stable_102.0.1245.41-1_amd64.deb
Request-Context: appId=cid-v1:7d63747b-487e-492a-872d-762362f77974
X-Response-Cache-Status: True
Expires: Wed, 15 Jun 2022 06:26:35 GMT
Cache-Control: max-age=0, no-cache, no-store
Pragma: no-cache
Date: Wed, 15 Jun 2022 06:26:35 GMT
Connection: keep-alive
Strict-Transport-Security: max-age=31536000 ; includeSubDomains

5. リダイレクト先から wget でファイルをダウンロードします

$ wget "https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-stable/microsoft-edge-stable_102.0.1245.41-1_amd64.deb"

補足

「4.」と「5.」を自動化するためにパイプでコマンドを連ねると良いです。

Powered by はてなブログ