Как скачать файл с сайта через терминал?

305

Предположим, что у нас есть полный URL-адрес желаемого файла, например

http://domain.com/directory/4?action=AttachFile&do=view&target=file.tgz

Я хотел бы пойти без установки нового программного обеспечения. Является ли это возможным?

команда

 cp  'http://example.com/directory/4?action=AttachFile&do=get&target=file.tgz' hooray

не работает;)

0x6B6F77616C74
источник
6
wgetтвой друг здесь :)
cauon
10
wgetэто, пожалуй, самый простой способ, но вы также можете использовать curl. Прочитайте это
дорогойN
16
Используйте wget -O hooray "http://domain.com/directory/4?action=AttachFile&do=get&target=file.tgz". Вы можете добавить -cопцию, чтобы возобновить загрузку, если соединение было потеряно во время загрузки файла.
Сергей
«ура»
взбесил

Ответы:

397

Откройте терминал и введите

wget "http://domain.com/directory/4?action=AttachFile&do=view&target=file.tgz" 

загрузить файл в текущий каталог.

wget  -P /home/omio/Desktop/ "http://thecanadiantestbox.x10.mx/CC.zip"

загрузит файл в /home/omio/Desktop

wget  -O /home/omio/Desktop/NewFileName "http://thecanadiantestbox.x10.mx/CC.zip"

загрузит файл /home/omio/Desktopи даст ему ваше NewFileNameимя.

devav2
источник
1
Избей меня до удара. Dang. Но да, это так wget [whatever web address]. Если вы хотите выбрать местоположение, введите cd [local location on your computer.] EXAMPLE: cd /home/omio/Desktop/ | wget http://thecanadiantestbox.x10.mx/CC.zip
Омио
4
@ Omio Бегать не нужно cd. Вы можете просто указать выходной файл через -Oопцию. Например:wget -O /home/omio/Desktop/file.tgz "http://domain.com/directory/4?action=AttachFile&do=view&target=file.tgz"
Сергей
1
Ваши примеры не будут работать. Вы ДОЛЖНЫ использовать кавычки, когда URL содержит амперсанды.
Сергей
@ Сергей Спасибо за разъяснения. Мне еще не приходилось использовать wget, но я должен был бы это использовать в будущем.
Омио
? и & интерпретируются вашей оболочкой. Вы должны процитировать или избежать этого. Как правило, у вас есть ярлык для вставки цитируемой или экранированной версии строки в буфер обмена в вашем терминале. Будьте очень осторожны при вставке материалов в терминал.
alecail
27

Вы можете сделать это с помощью curl.

curl -O http://domain.com/directory/4?action=AttachFile&do=view&target=file.tgz

-O сохраняет файл с тем же именем, что и в URL, а не выводит вывод в стандартный вывод

Для получения дополнительной информации

rɑːdʒɑ
источник
Я никогда не могу вспомнить, если это ноль или О
Александр Миллс
-О это буква алфавита и должна быть заглавной, иначе будет сгенерирован журнал
Карим Эльсайед
20

Я использую axelи wgetдля загрузки с терминала, аксель является ускорителем загрузки

синтаксис

аксель

Установить через центр программного обеспечения

axel www.example.com/example.zip

Wget

wget -c www.example.com/example.zip

для более подробной информации типа man axel, man wgetв терминале

Тахионы
источник
6
чем axelотличается от wget?
heinrich5991
3
@ heinrich5991 wget более продвинутый, чем аксель!
Пранит Баува
9

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

history -d $((HISTCMD-1)) && echo '[PASSWORD]' | sudo -S shutdown now

Вы можете использовать это, чтобы выключить компьютер после вашей wgetкоманды, ;возможно, или в bashфайле сценария.

Это будет означать, что вам не нужно бодрствовать ночью и следить, пока загрузка не будет успешно запущена.

Прочитайте и этот ответ

dearN
источник
5

отсутствие упоминания Aria2 - просто плохая услуга, так что с этим сказал, проверьте Aria2. https://aria2.github.io/

Установите его, просто набрав в терминале:

sudo apt install aria2

Затем просто введите это, чтобы загрузить файл:

aria2c http://example.com/directory/4?action=AttachFile&do=get&target=file.tgz

Вы можете найти больше помощи aria2на его manстранице.

Майкл Туннелл
источник
2

Я сделал эти шаги от Oh-my-zsh,

brew install wget
wget https://github.com/sencha-extjs-examples/QuickStart/archive/master.zip
До Нху Вы
источник