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

В настоящее время я работаю над скриптом, который обновляет файл. Файл имеет несколько версий. Важные имеют статические ссылки. Они перенаправляются на фактический файл, который затем загружается с помощью 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
  • wget загруженные имена файлов с абсолютным путем для использования с apt-get
  • Использование wget для целевых файлов в диапазоне дат
  • Загружайте данные на веб-сайте (http) рекурсивно с помощью wget
  • Как я могу преобразовать все html-файлы, которые я получаю в текстовые файлы после команды wget?
  • Загрузите список файлов, если они еще не существуют.
  • Файлы труб, загруженные с помощью wget в функцию
  • Как отключить сжатие gzip с помощью wget?
  • Загрузите все исходные файлы для веб-страницы
  • wget - Как загрузить веб-страницы на основе шаблона URL?
  • wget несколько файлов PDF из ссылок
  • Linux и Unix - лучшая ОС в мире.