[macos] OS X: équivalent du wget de Linux



Answers

brew install wget

Homebrew est un gestionnaire de paquets pour OSX analogue à yum, apt-get, choco, emerge, etc. Sachez que vous devrez également installer Xcode et les outils de ligne de commande. Pratiquement tous ceux qui utilisent la ligne de commande dans OSX voudront installer ces choses quand même.

Si vous ne pouvez pas ou ne voulez pas utiliser homebrew, vous pouvez également:

Installez wget manuellement:

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

Ou, utilisez un alias bash:

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

Comment puis-je faire un HTTP GET à partir d'un script shell Un * x sur un système OS X? (l'installation de logiciels tiers n'est pas une option, car cela doit fonctionner sur un grand nombre de systèmes différents sur lesquels je n'ai aucun contrôle).

Par exemple si je démarre localement le serveur Mercurial en faisant un hg serve :

... $ hg serve 

Et puis, à partir d'un Linux qui a la commande wget, je fais 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

Et sur le terminal dans lequel j'ai lancé la commande "hg serve" , je peux effectivement voir qu'un HTTP GET a fait son chemin:

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

Donc, sur Linux, une façon de faire un HTTP GET à partir d'un script shell est d'utiliser wget (si cette commande est bien sûr installée).

Quelles sont les autres façons de faire l'équivalent d'un wget ? Je cherche, en particulier, quelque chose qui fonctionnerait sur les installations OS X stock.




Vous pouvez utiliser curl place. Il est installé par défaut dans /usr/bin .




Voici l'équivalent Mac OS X du wget de Linux.

Pour Linux, par exemple Ubuntu sur une instance AWS, utilisez:

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

Sur un Mac, c'est-à-dire pour le développement local, utilisez ceci:

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

Le paramètre -o est requis sur un Mac pour la sortie dans un fichier au lieu de l'écran. Indiquez un nom de cible différent pour renommer le fichier téléchargé.

Utilisez capital -O pour renommer avec wget. Minuscules -o spécifiera le fichier de sortie pour le journal de transfert.




1) sur votre type de mac

nano /usr/bin/wget

2) collez ce qui suit dans

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

3) fermez puis rendez-le exécutable

chmod 777 /usr/bin/wget

C'est tout.




Related