105

Поэтому после некоторого времени поиска в Google и Super User (и сканирования справочных страниц) я не смог найти ответ на то, что (я думаю) должно быть простым:

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

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 для желаемого эффекта?

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

5 ответов5

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

Предостережения в соответствии с 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 следует при необходимости перенаправлениям.

71

С помощью wget вы можете сделать это:

wget --trust-server-names <url> 

сохранить файл, используя последнее имя файла, которое вам предоставит сервер.

2

Вы также можете использовать aria2c - похоже, он хорошо работает с заголовками Content-Disposition.

0

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

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

0

Работал следующим образом:

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

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

(изменил регистр на меньший, т.е. (wget -O) на (wget -o)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .