GNU/Linux >> Tutoriales Linux >  >> Linux

Obtenga la URL final después de redirigir curl

Gracias, eso me ayudó. Hice algunas mejoras y las envolví en un script de ayuda "finalurl":

#!/bin/bash
curl $1 -s -L -I -o /dev/null -w '%{url_effective}'
  • -o salida a /dev/null
  • -I en realidad no descargue, solo descubra la URL final
  • -s modo silencioso, sin barras de progreso

Esto hizo posible llamar al comando desde otros scripts como este:

echo `finalurl http://someurl/`

como otra opción:

$ 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>

Pero no pasa del primero.


curl de -w y la subvariable url_effective es lo que estás buscando.

Algo como

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

Más información

-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

Más

Es posible que desee agregar -I (que es un i en mayúscula ) también, lo que hará que el comando no descargue ningún "cuerpo", pero luego también usa el método HEAD, que no es lo que incluía la pregunta y corre el riesgo de cambiar lo que hace el servidor. A veces, los servidores no responden bien a HEAD incluso cuando responden bien a GET.


Linux
  1. ¿Echo Text After Curl Command en la misma línea?

  2. ¿Dónde obtener la nueva cadena después de ejecutar `sub` en Awk?

  3. ¿Cómo canalizo o redirijo la salida de curl -v?

  4. ¿Hay programas wget o similares siempre disponibles en los sistemas POSIX?

  5. ¿Cómo obtener la URL del archivo de Dropbox desde la línea de comando?

Uso de Curl para realizar solicitudes de API REST

Statcode:obtenga una explicación rápida de varios códigos de estado HTTP

15 ejemplos prácticos de comandos cURL de Linux (ejemplos de descarga de cURL)

realizando solicitudes HTTP con cURL (usando PROXY)

RabbitMQ:obtenga mensajes de una cola usando curl

¿Cómo puedo hacer un HTTP PUT con Wget?