OS X:Linuxのwgetに相当


499

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

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

... $ 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インストールで機能するものを探しています。


回答:


712

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


27
また、wgetMacPortsFinkの両方から利用できます。
ブライアンクラッパー2010

47
Macでwgetを取得する方法についてGoogleの検索から来たので、サードパーティソフトウェアのインストールを回避するというOPの要件にもかかわらず、MacPorts使用せずにwgetをインストールする方法についてのクイックガイドへのリンクを提供します。参照。
Eirik H

32
Homebrewでも利用できます。
ダニエルはモニカを

2
順調に進んでいないようです。
1

14
ファイルをダウンロードする場合、-Oまたは--remote-nameフラグを使用して、ダウンロードしたファイルの名前を自動的に変更できます。例curl -O http://somehost.org/file.zip
nimcap 2018

463

brew install wget

Homebrewは、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'

11
あなたは自作を説明するのに少し時間がかかるかもしれませんが、wget他の唯一のものがそれの所有者によって削除されたので、ここには初心者に見える答えがあることが重要でありcurl、文字通りの同等ではなく代替です。
Chris Stratton 2013年

2
ありがとう、brewがすでにインストールされている人にとって、これは私にとって役に立ちました。
エンダーランド2013

4
@Michaelangeloそしてそれは他の人の投稿を破壊するあなたの仕事ではありません。自分の主張をするために他の回答を編集するべきではありません-それは不適切です。実際には、アクションがメタで議論されています:meta.stackoverflow.com/questions/315892/...
Zizouz212

2
@EricHartfordダウン投票は問題を解決しません。手動でwgetをインストールする方法の他のオプションをリストせずに、1つの代替手段を提供しました。
Michaelangel007 2016

1
良い点があると思います。そして、私はあなたのアイデアを組み込むために答えを編集します。
Eric Hartford

87

Curlには、デフォルトのwgetとほぼ同等のモードがあります。

curl -O <url>

これは次のように機能します

wget <url>

そして、必要に応じて、これを.bashrcに追加できます。

alias wget='curl -O'

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


2
これをどのように再帰的に行うのですか?
Jasper

bashを使用してこれを次のようなループに追加できます。for i in `seq 1 <n>` do curl -O <url>;done;ここで、<n>は反復する回数、<url>はプルするURLです。
Blairg23

1
-L場所のリダイレクトを追跡するために、フラグを追加する必要がある場合があります。あなたcurl -OL <url>はそれを行うために使用することができます。
Gustavo Straube 2016年

1
-Oまた、次の引数にのみ適用されるため、複数のURLをダウンロードするには、curl -O "$url1" -O "$url2"またはのようなものを使用する必要がありますprintf %s\\n "$url1" "$url2"|xargs -n1 curl -O
nisetama

それは素晴らしいきちんとしたヒントです。どうもありがとうございます!
cmcromance 2016

42

1)Macタイプ

nano /usr/bin/wget

2)以下を貼り付けます

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

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

chmod 777 /usr/bin/wget

それでおしまい。


エイリアスよりも優れています。
MK

3
ほぼ正しい。私はステップ1 vim /usr/bin/wgetが;)であるはずだと信じています。答えをありがとう-これは本当に私には起こりませんでした、そして何らかの理由でbrew / fink /何でもインストールしたくないので、簡単に移植可能な答えを歓迎します。
カサポ

3
-Lhttp 301応答を処理するために重要です。wgetはデフォルトでそれらを処理します。
Donn Lee

「curl -L resource.url / tar.tar.gz -O tar.tar.gz」は正常に機能しました。このユースケースでは、このスレッドの他の実行可能なソリューションのおかげです。
Oleksii Kyslytsyn

sudo nano / usr / bin / wget
Vino

18

を使用しcurlます。

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

12

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で名前を変更 -Oをます。小文字の-oは、転送ログの出力ファイルを指定します。


5

Macマシンでwgetをビルドするか、MacPortsを使用して直接インストールできます。

sudo port install wget 

これは魅力のように機能します。また、利用可能になったらすぐに最新バージョンに更新できます。PortはBrewよりはるかに安定していますが、数式とポートの数ははるかに少なくなっています。

MacPortsはhttps://www.macports.org/install.php.pkgファイルをダウンロードしてインストールすることでインストールできます。


そして、どのようにポートをインストールしますか?
ロイラブジョイ2017年

5

同等のものを使用する代わりに、「brew install wget」を試してwgetを使用できます。

MacにBrewをインストールする必要があります。


1
反対票を投じるつもりはありませんが、これはエリックが2013年6月13日に回答したものです。
MarkHu 2018


2

wgetプリコンパイル済みMacバイナリ

Macでのクイックwgetインストールをお探しの方は、ここ10年以上使用されているQuentin Stafford-Fraserのプリコンパイル済みバイナリを確認してください。

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

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

make / install / port / brew / curlジャンクはありません。ダウンロード、インストール、実行するだけです。Mac OS X 10.3-10.12 +で動作します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.