2014-12-13 9 views
8

Я хочу загрузить файл с завитком, и он не работает!Curl command не загружает файл (linux mint)

curl -O https://github.com/systems-cs-pub-ro/uso/raw/master/tema1/help/hello.o 

Это пример, который я видел на многих официальных сайтах. Говорят, что команда выше загружает файл hello.o. Это не так! Он просто загружает какой-то вывод и сохраняет его в файле с тем же именем.

Если я запускаю команду выше, и я печатаю содержание hello.o, он говорит:

<html><body>You are being <a href="https://raw.githubusercontent.com/systems-cs-pub-ro/uso/master/tema1/help/hello.o">redirected</a>.</body></html> 

Размерность hello.o составляет 147 байт.

Кроме того, если я типа

wget https://github.com/systems-cs-pub-ro/uso/raw/master/tema1/help/hello.o 

он загружает файл hello.o как именно это! Теперь размер равен 1,2 K

Есть ли способ загрузить файл hello.o с помощью curl, как я могу его загрузить с помощью wget?

Благодарим вас.

ответ

13

С Curl, необходимо использовать флаг -L, как это:

локон -L https://github.com/systems-cs-pub-ro/uso/raw/master/tema1/help/hello.o> hello.o

От человека странице загнутого уголка:

-L, - location (HTTP/HTTPS) Если сервер сообщает, что запрошенная страница переместилась в другое место (указанное с заголовком «Location» и кодом ответа 3XX), этот параметр заставит завиток повторить запрос на новом месте. Если они используются вместе с -i, --include или -I, - head, будут показаны заголовки со всех запрошенных страниц. Когда используется аутентификация, curl отправляет свои учетные данные только исходному хосту. Если перенаправление принимает завиток на другой хост, он не сможет перехватить пароль пользователя +. См. Также --location-trusted, как это изменить. Вы можете ограничить количество переадресаций, чтобы следовать с помощью опции -max-redirs. Когда curl следует за перенаправлением, и запрос не является простым GET (например, POST или PUT), он будет выполнять следующий запрос с GET, если ответ HTTP был 301, 302 или 303. Если код ответа был любым другим 3xx код, curl отправит следующий запрос с использованием того же немодифицированного метода.

Пожалуйста, обратите внимание, что ваш вопрос уже есть ответ здесь: How do I download a tarball from GitHub using cURL?

+1

Спасибо с уважением. –

+0

Добро пожаловать. Если это ответит на ваш вопрос, выберите его в качестве принятого ответа. Спасибо. –

+0

Улучшение ответа: вы можете сделать 'curl -I http: // releases.wikimedia.org/mediawiki/1.24/mediawiki-1.24.1.tar.gz'. Используя опцию -I, вы получите некоторые сведения о вашем запросе, такие как HTTP-код, который был возвращен (301). Затем у вас будет определенность, что перенаправление настроено для содержимого, которое вы запрашиваете. С уважением и благодарю за ответ :). – ivanleoncz

Смежные вопросы