Как к wget файл с корректным именем при перенаправлении?

Так через какое-то время поиска на Google и Суперпользователе (и сканирование страниц справочника) я не мог найти ответ на что-то, что (я думаю), должно быть простым:

Если Вы идете сюда:

http://www.vim.org/scripts/script.php?script_id=2340

И попытайтесь загрузить тему:

http://www.vim.org/scripts/download_script.php?src_id=9750

Как так:

wget http://www.vim.org/scripts/download_script.php?src_id=9750

Вы, вероятно, закончите с названным файлом download_script.php?src_id=9750.

Но я хочу, чтобы это было названо molokai.vim, который является тем, что произошло бы, если бы я использовал браузер для загрузки этого файла.

Какие опции я должен указать для wget для желаемого эффекта?

Я также согласился бы с Вихревой эквивалентной командой.

120
задан 15.02.2016, 08:54

2 ответа

-O file
--output-document=file

Документы не будут записаны в соответствующие файлы, но все они будут собраны воедино и записаны в файл. Если в качестве файла используется -, документы будут распечатаны на стандартный вывод, что отключает преобразование ссылок. (Используйте ./- для печати в файл с буквальным именем -)

Таким образом,

wget -O somefile.extension http://www.vim.org/scripts/download_script.php?src_id=9750

Или вы можете получить wget для решения этой задачи с помощью опции - Content-disposition, если она поддерживается вашей версией.

wget --content-disposition http://www.vim.org/scripts/download_script.php?src_id=9750

Caveats согласно man-странице,

--content-disposition

Если эта опция включена, включается экспериментальная (не полностью функциональная) поддержка заголовков "Content-Disposition". В настоящее время это может привести к дополнительным раундтрипам на сервере для запроса "HEAD", и, как известно, страдает от нескольких ошибок, поэтому по умолчанию она не включена.

Эта опция полезна для некоторых CGI-программ, загружающих файлы, которые используют заголовки "Content-Disposition" для описания того, каким должно быть имя загружаемого файла.

С помощью curl можно добиться такого же автоматического поведения, используя,

curl -JLO http://www.vim.org/scripts/download_script.php?src_id=9750

-O использует удаленное имя, а -J заставляет -O получить это имя из заголовка "Контент-диссозиция", а не URL, и -L при необходимости следует за заголовками перенаправлений.

.
164
ответ дан 07.12.2019, 07:49

Просто кудрявые перенаправления хорошо работают, поэтому используя следующее, , я думаю, для того, что вы ищете.

curl -o molokai.vim http://www.vim.org/scripts/download_script.php?src_id=9750

0
ответ дан 07.12.2019, 07:49

Теги

Похожие вопросы