GNU/Linux >> Belajar Linux >  >> Linux

Dapatkan URL final setelah curl dialihkan

Terima kasih, itu membantu saya. Saya melakukan beberapa peningkatan dan membungkusnya dalam skrip pembantu "finalurl":

#!/bin/bash
curl $1 -s -L -I -o /dev/null -w '%{url_effective}'
  • -o output ke /dev/null
  • -I jangan benar-benar mengunduh, temukan saja URL finalnya
  • -s mode senyap, tidak ada bilah kemajuan

Ini memungkinkan untuk memanggil perintah dari skrip lain seperti ini:

echo `finalurl http://someurl/`

sebagai opsi lain:

$ curl -i http://google.com
HTTP/1.1 301 Moved Permanently
Location: http://www.google.com/
Content-Type: text/html; charset=UTF-8
Date: Sat, 19 Jun 2010 04:15:10 GMT
Expires: Mon, 19 Jul 2010 04:15:10 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 219
X-XSS-Protection: 1; mode=block

<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="http://www.google.com/">here</A>.
</BODY></HTML>

Tapi itu tidak melewati yang pertama.


curl -w option dan subvariabel url_effective adalah yang Anda cari.

Sesuatu seperti

curl -Ls -o /dev/null -w %{url_effective} http://google.com

Info lebih lanjut

-L         Follow redirects
-s         Silent mode. Don't output anything
-o FILE    Write output to <file> instead of stdout
-w FORMAT  What to output after completion

Lainnya

Anda mungkin ingin menambahkan -I (itu adalah i huruf besar ) juga, yang akan membuat perintah tidak mengunduh "badan" apa pun, tetapi kemudian juga menggunakan metode HEAD, yang bukan termasuk pertanyaan dan berisiko mengubah apa yang dilakukan server. Terkadang server tidak merespons HEAD dengan baik meskipun mereka merespons GET dengan baik.


Linux
  1. Debian – Diberi Nama Paket Debian, Bagaimana Cara Mendapatkan Url Ke Url .deb Terbaru??

  2. Bagaimana Cara Mendapatkan Hanya File yang Dibuat Setelah Berkencan Dengan Ls?

  3. Teks Gema Setelah Perintah Curl Pada Baris Yang Sama?

  1. Di mana Mendapatkan String Baru Setelah Menjalankan `sub` Di Awk?

  2. Linux:perintah untuk membuka URL di browser default

  3. Bagaimana cara mem-pipe atau mengarahkan output dari curl -v?

  1. Bagaimana cara mendapatkan cURL untuk tidak menampilkan bilah kemajuan?

  2. melakukan permintaan HTTP dengan cURL (menggunakan PROXY)

  3. Apakah wget atau program serupa selalu tersedia di sistem POSIX?