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

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

например, если я запускаю сервер Mercurial локально, делая НД служить:

... $ 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

и на терминале, в котором я запустил "НД служить" команда, я действительно вижу, что HTTP пробился:

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

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

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

10 ответов


Я собираюсь сказать curl http://127.0.0.1:8000 -o outfile


brew install wget

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

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

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

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

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

function _wget() { curl "" -o $(basename "") ; };
alias wget='_wget'

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

curl -O <url>

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

wget <url>

и, если хотите, вы можете добавить это к своему .bashrc следующее:

alias wget='curl -O'

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


1) на вашем mac типа

nano /usr/bin/wget

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

#!/bin/bash
curl -L  -o 

3) Закройте затем сделайте его исполняемым

chmod 777 /usr/bin/wget

вот именно.


использовать curl;

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

вот Mac OS X эквивалент wget Linux.

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

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

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

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

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

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


вместо того, чтобы идти с эквивалентом, вы можете попробовать "brew install wget" и использовать wget.

вы должны иметь brew установлен в вашем mac.


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

sudo port install wget 

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

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


можно использовать . Он устанавливается по умолчанию в /usr/bin.


wget предварительно скомпилированный Mac Binary

для тех, кто ищет быструю установку wget на Mac, проверьте предварительно скомпилированный двоичный файл Квентина Стаффорда-Фрейзера здесь, который существует уже более десяти лет:

https://statusq.org/archives/2008/07/30/1954/

MD5 для 2008 wget.молния: 24a35d499704eecedd09e0dd52175582
MD5 для 2005 wget.застежка-молния: c7b48ec3ff929d9bd28ddb87e1a76ffb

нет make/install/port/brew/curl нежелательной. Просто скачайте, установите и запустите. Работает с Mac OS X 10.3-10.12+.