web-dev-qa-db-ja.com

OS X:Linuxのwgetと同等

標準のOS XシステムでUn * x ShellスクリプトからHTTP GETを実行するにはどうすればよいですか? (サードパーティのソフトウェアをインストールすることは選択肢ではありません、これは私が制御できない多くの異なるシステムで実行しなければならないためです)。

たとえば、Mercurialサーバをローカルで起動して hg serve を実行したとします。

... $ hg serve 

そして、 wget コマンドを持っているLinuxから、私は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を実行する1つの方法は、 wget を使用することです(そのコマンドがもちろんインストールされている場合)。

wget と同等のことをするために他にどのような方法がありますか?特に、OS Xの標準インストールでうまくいくものを探しています。

447
SyntaxT3rr0r

私はcurl http://127.0.0.1:8000 -o outfileと言わなければならないでしょう

636
SiegeX

brew install wget

自作 は、yum、apt-get、choco、emergeなどに似たOSX用のパッケージマネージャです。Xcodeとコマンドラインツールもインストールする必要があることに注意してください。 OSXでコマンドラインを使っている人は、とにかくこれらのものをインストールしたいと思うでしょう。

自作を使用できない、または使用したくない場合は、次のようにすることもできます。

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 "${1}" -o $(basename "${1}") ; };
alias wget='_wget'
432
Eric Hartford

Curlはデフォルトのwgetとほぼ同等のモードを持っています。

curl -O <url>

これはちょうど同じように動作します

wget <url>

そして、あなたが好きなら、あなたはあなたの.bashrcにこれを追加することができます:

alias wget='curl -O'

100%互換ではありませんが、最も一般的なwgetの使用法(IMO)で機能します。

75
Ed Henderson

1)あなたのMacタイプ

nano /usr/bin/wget

2)以下を貼り付けます

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

3)閉じてから実行可能にする

chmod 777 /usr/bin/wget

それでおしまい。

39
Eamon Straughn

curlを使用してください。

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

これがLinuxのwgetに相当するMac OS X版です。

Linuxの場合、たとえばAWSインスタンスのUbuntuの場合は、次のようにします。

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

Macの場合、つまりローカル開発の場合は、次のようにします。

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

Macでは、-oパラメータは画面上ではなくファイルに出力するために必要です。ダウンロードしたファイルの名前を変更するための別のターゲット名を指定してください。

Wgetで名前を変更するには capital -Oを使用してください。小文字の-oは転送ログの出力ファイルを指定します。

9
Oliver Schafeld

同等のものを使う代わりに、 "brew install wget"を試してwgetを使うことができます。

あなたのMacにbrewをインストールしておく必要があります。

6
Jaya Konduru

あなたは、Macマシン上でのwgetを構築したり、直接それをインストールするMacPortsのを使用することができます。

Sudo port install wget 

これは魔法のように動作し、また、あなたはとすぐに利用できるよう、最新のバージョンにアップデートすることができます。式とポートのはるかに少ない数を有するが、ポートは、BREWよりもはるかに安定しています。

https://www.macports.org/install.phpからMacPortsをインストールすることができます、あなたは.pkgファイルをダウンロードしてそれをインストールすることができます。

5
Hammad Haleem

代わりにcurlを使うことができます。デフォルトでは/usr/binにインストールされています。

4
James Sumners

wgetプリコンパイル済みMac Binary

Macへの素早いwgetインストールをお探しの方は、Quentin Stafford-Fraserのプリコンパイル済みバイナリをここで調べてください。

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

2008年のMD5 wget.Zip:24a35d499704eecedd09e0dd52175582
2005年のMD5 wget.Zip:c7b48ec3ff929d9bd28ddb87e1a76ffb

作成/インストール/ポート/醸造/カールジャンクはありません。ダウンロードしてインストールして実行するだけです。 Mac OS X 10.3-10.12以降で動作します。

2
Beejor