mac for macos shell unix http-get

macos - for - OS X: equivalente al wget de Linux



install wget mac terminal (10)

¿Cómo puedo hacer un HTTP GET desde un script de shell Un * x en un sistema OS X stock? (la instalación de software de terceros no es una opción, ya que tiene que ejecutarse en muchos sistemas diferentes sobre los que no tengo control).

Por ejemplo, si inicio el servidor Mercurial localmente haciendo un servidor hg :

... $ hg serve

Y luego, desde un Linux que tiene el comando wget , hago un 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

Y en la terminal en la que lancé el comando "hg serve" , puedo ver que un HTTP GET se abrió camino:

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

Entonces, en Linux, una forma de hacer un GET HTTP desde un script de shell es usar wget (si ese comando está instalado, por supuesto).

¿Qué otras formas hay para hacer el equivalente de un wget ? Estoy buscando, en particular, algo que funcionaría en las instalaciones de OS X.


wget precompilado Mac Binario

Para aquellos que buscan una instalación rápida de wget en Mac, consulte el binario precompilado de Quentin Stafford-Fraser aquí, que ha existido durante más de una década:

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

MD5 para 2008 wget.zip: 24a35d499704eecedd09e0dd52175582
MD5 para 2005 wget.zip: c7b48ec3ff929d9bd28ddb87e1a76ffb

No make / install / port / brew / curl junk. Solo descargue, instale y ejecute. Funciona con Mac OS X 10.3-10.12 +.


1) en tu tipo de mac

nano /usr/bin/wget

2) pega lo siguiente en

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

3) cierra luego hazlo ejecutable

chmod 777 /usr/bin/wget

Eso es.


Aquí está el equivalente de Mac OS X del wget de Linux.

Para Linux, por ejemplo Ubuntu en una instancia de AWS, use:

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

En una Mac, es decir, para el desarrollo local, use esto:

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

El parámetro -o se requiere en una Mac para la salida en un archivo en lugar de en la pantalla. Especifique un nombre de destino diferente para cambiar el nombre del archivo descargado.

Use mayúscula -O para renombrar con wget. Minúscula -o especificará el archivo de salida para el registro de transferencia.


Curl tiene un modo que es casi equivalente al wget predeterminado.

curl -O <url>

Esto funciona igual que

wget <url>

Y, si lo desea, puede agregar esto a su .bashrc:

alias wget=''curl -O''

No es 100% compatible, pero funciona para el uso más común de wget (IMO)


En lugar de utilizar el equivalente, puede probar "brew install wget" y usar wget.

Necesitas tener brew instalado en tu mac.


Podrías usar curl lugar. Se instala por defecto en /usr/bin .


Puede crear wget en la máquina mac o usar MacPorts para instalarlo directamente.

sudo port install wget

Esto funcionaría como un encanto, también puede actualizar a la última versión tan pronto como esté disponible. El puerto es mucho más estable que la preparación, aunque tiene mucho menos fórmula y puertos.

Puede instalar MacPorts desde https://www.macports.org/install.php . Puede descargar el archivo .pkg e instalarlo.


Use curl ;

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


Voy a tener que decir curl http://127.0.0.1:8000 -o outfile


brew install wget

Homebrew es un administrador de paquetes para OSX análogo a yum, apt-get, choco, emerge, etc. Tenga en cuenta que también necesitará instalar Xcode y las herramientas de línea de comandos. Prácticamente cualquiera que use la línea de comandos en OSX querrá instalar estas cosas de todos modos.

Si no puedes o no quieres usar Homebrew, también puedes:

Instalar wget manualmente:

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

O, usa un alias de bash:

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