OS X: эквивалент Linux для wget

324

Как я могу выполнить HTTP GET из оболочки Un * x script в ОС OS X? (установка стороннего программного обеспечения не является вариантом, поскольку это должно выполняться на множестве разных систем, на которые у меня нет контроля).

Например, если я запускаю сервер Mercurial, локально выполняющий hg-службу:

... $ hg serve 

И затем, из Linux, у которого есть команда wget, я делаю wget:

... $  wget http://127.0.0.1:8000
--2010-12-31 22:18:25--  http://127.0.0.1:8000/
Connecting to 127.0.0.1:8000... connected.
HTTP request sent, awaiting response... 200 Script output follows
Length: unspecified [text/html]
Saving to: `index.html

И на терминале, на котором я запустил команду "hg serve", я действительно вижу, что HTTP GET сделал свой путь:

127.0.0.1 - - [30/Dec/2010 22:18:17] "GET / HTTP/1.0" 200 -

Итак, на Linux одним из способов сделать HTTP GET из оболочки script является использование wget (если эта команда установлена, конечно).

Какие еще существуют способы сделать эквивалент wget? Я смотрю, в частности, на то, что будет работать с установкой OS X.

Теги:
http-get
osx

8 ответов

460
Лучший ответ

Мне нужно сказать curl http://127.0.0.1:8000 -o outfile

  • 27
    Кроме того, wget доступен через MacPorts и Fink .
  • 45
    Я пришел сюда из поиска Google о том, как получить wget на Mac, поэтому, несмотря на требование ОП избегать установки стороннего программного обеспечения, я предоставлю ссылку на краткое руководство, которое я нашел о том, как установить wget без использования MacPorts в будущем. ссылка.
Показать ещё 5 комментариев
285

brew install wget

Homebrew - это менеджер пакетов для OSX, аналогичный yum, apt-get, choco, emerge и т.д. Имейте в виду, что вам также потребуется установить Xcode и Инструменты командной строки. Практически любой, кто использует командную строку в OSX, все равно захочет установить эти вещи.

Если вы не можете или не хотите использовать доморощенный, вы также можете:

Установите wget вручную:

curl -# "http://ftp.gnu.org/gnu/wget/wget-1.17.tar.xz" -o "wget.tar.xz"
tar xf wget.tar.xz
cd wget-1.17
./configure --with-ssl=openssl -with-libssl-prefix=/usr/local/ssl && make -j8 && make install

Или используйте псевдоним bash:

function _wget() { curl "${1}" -o $(basename "${1}") ; };
alias wget='_wget'
  • 9
    Вы можете потратить некоторое время на объяснение доморощенного, но важно, чтобы здесь был ответ wget видимый новичку, поскольку единственный другой был удален его владельцем, и curl является альтернативой, а не буквальным эквивалентом.
  • 2
    Спасибо, это было полезно для меня, так как кто-то с brew уже установлен.
Показать ещё 6 комментариев
60

Curl имеет режим, который почти эквивалентен стандарту wget.

curl -O <url>

Это работает так же, как

wget <url>

И, если хотите, вы можете добавить это в свой .bashrc:

alias wget='curl -O'

Он не на 100% совместим, но работает для наиболее распространенного использования wget (IMO)

  • 2
    как ты рекурсивен с этим?
  • 0
    Вы можете использовать bash, чтобы добавить это в цикл следующим образом: for i in `seq 1 <n>` do curl -O <url>;done; где <n> - это количество раз, которое вы хотите повторить, а <url> - это URL для извлечения.
Показать ещё 4 комментария
23

1) на вашем макете

nano /usr/bin/wget

2) вставьте следующее в

#!/bin/bash
curl -L $1 -o $2

3), затем сделайте его выполнимым

chmod 777 /usr/bin/wget

Что это.

  • 0
    Понравилось так :))
  • 0
    Лучше, чем псевдоним.
Показать ещё 5 комментариев
12

Используйте curl;

curl http://127.0.0.1:8000 -o index.html
7

Здесь Mac OS X эквивалент Linux wget.

Для Linux, например Ubuntu на экземпляре AWS, используйте:

wget http://example.com/textfile.txt

На Mac, то есть для локальной разработки, используйте это:

curl http://example.com/textfile.txt -o textfile.txt

Параметр -o требуется на Mac для вывода в файл, а не на экране. Укажите другое имя цели для переименования загруженного файла.

Используйте капитал -O для переименования с помощью wget. Нижний регистр -o укажет выходной файл для журнала передачи.

4

Вы можете либо построить wget на компьютере Mac, либо использовать MacPorts для его установки напрямую.

sudo port install wget 

Это будет работать как шарм, и вы сможете обновить его до последней версии, как только это будет доступно. Порт намного стабильнее, чем brew, хотя он имеет намного меньшее количество формул и портов.

Вы можете установить MacPorts из https://www.macports.org/install.php, вы можете загрузить файл .pkg и установить его.

  • 0
    а как вы устанавливаете порт?
3

Вместо этого вы можете использовать curl. По умолчанию он установлен в /usr/bin.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню