Как определить, куда перенаправляется ссылка

В настоящее время я работаю над скриптом, который обновляет файл. Файл имеет несколько версий. Важные имеют статические ссылки. Они перенаправляются на фактический файл, который затем загружается с помощью wget . Я выяснил, что wget имеет флаг, который печатает получаемые заголовки. Список мест. Последнее местоположение, обозначенное в заголовке, является фактическим URL. Мне нужно это получить!

Моя идея состояла в том, чтобы использовать wget -S для получения заголовка (мне нужен еще один флаг, который предотвращает загрузку и создание файла). Затем используйте трубку для разбора строк и поиска последней строки, содержащей location . Я предполагаю, что это можно реализовать, используя grep -l -i "location:" | tail -l grep -l -i "location:" | tail -l . Затем мне нужно оставить одну строчку, которая может быть легко проанализирована.

Таким образом, команда будет выглядеть примерно так:

 # The -??? flag is the one that prevents the file from downloading. (I don't know it) Location=$(wget -S -??? $URL | grep -l -i "location:" | tail -l) 

Мой вопрос, какой флаг мне нужно использовать, чтобы не загружать файл с помощью wget или есть другой способ / команда для этого?

One Solution collect form web for “Как определить, куда перенаправляется ссылка”

Вы хотите получить запрос HEAD, но wget не поддерживает его; curl .

Вероятнее всего, ваше распространение имеет curl в репозиториях.

curl -s -I $URL -L | awk '/Location: (.*)/ {print $2}' | tail -n 1

 $ URL=http://unix.stackexchange.com/questions/89282/ $ curl -s -I $URL | awk '/Location: (.*)/ {print $2}' | tail -n 1 /questions/89282/how-to-figure-out-where-a-link-gets-redirected $ _ , $ URL=http://unix.stackexchange.com/questions/89282/ $ curl -s -I $URL | awk '/Location: (.*)/ {print $2}' | tail -n 1 /questions/89282/how-to-figure-out-where-a-link-gets-redirected $ _ 

Вот:

  • -s предотвращает показ индикатора индикатора выполнения;
  • -I curl запрос HEAD;
  • -L делает curl следуя переадресации (спасибо @brianstone), вы можете захотеть или не захотеть включить это, в зависимости от того, какие заголовки перенаправления вы хотите отслеживать;
  • awk-скрипт печатает совпадающее выражение в parens, только локальную часть URI.
  • Как получить прямую ссылку на загружаемый файл (для использования с wget или cURL), который обычно загружается через Javascript в веб-браузере
  • Как загрузить все файлы, перечисленные в массиве?
  • Кэш DNS для wget
  • Wget с другим именем файла, но с тем же расширением
  • Wget загружать файл (не перезаписывать) сценарий автоматического обновления
  • Ошибка wget -output-document = при наличии символа ~
  • Owncloud не показывает файлы, которые загружаются через SSH
  • Как отправить файл на FTP-сервер, который не приведет к успешному завершению соединения?
  • Получение md5 во время wget
  • Как использовать wget для загрузки определенных файлов из определенного каталога, когда сам каталог не имеет index.html?
  • Инструменты для анализа автоматически генерируемых HTTP-индексов?
  • Linux и Unix - лучшая ОС в мире.