OS X:相当于Linux的wget
如何从库存OS X系统上的Un * x shell脚本执行HTTP GET? (安装第三方软件不是一种select,因为它必须运行在许多不受我控制的不同系统上)。
例如,如果我在本地启动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”命令的terminal上,我确实可以看到一个HTTP GET取得了成功:
127.0.0.1 - - [30/Dec/2010 22:18:17] "GET / HTTP/1.0" 200 -
所以在Linux上,从shell脚本执行HTTP GET的一种方法是使用wget (如果安装了该命令的话)。
还有什么其他方法可以做wget的等价物? 我正在寻找,特别是可以在OS X安装中使用的东西。
我将不得不说curl http://127.0.0.1:8000 -o outfile
brew install wget
Homebrew是OSX的包pipe理器,类似于yum,apt-get,choco,emerge等等。请注意,您还需要安装Xcode和命令行工具。 实际上,任何在OSX中使用命令行的人都会想要安装这些东西。
如果你不能或不想使用自制软件,你也可以:
手动安装wget:
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
或者,使用bash别名:
function _wget() { curl "${1}" -o $(basename "${1}") ; }; alias wget='_wget'
curl有一个几乎相当于默认wget的模式。
curl -O <url>
这工作就像
wget <url>
而且,如果你喜欢,你可以把它添加到你的.bashrc中:
alias wget='curl -O'
它不是100%兼容,但它适用于最常见的wget使用(IMO)
1)在你的MACtypes
nano /usr/bin/wget
2)粘贴以下内容
#!/bin/bash curl -L $1 -o $2
3)closures然后使其可执行
chmod 777 /usr/bin/wget
而已。
使用curl
;
curl http://127.0.0.1:8000 -o index.html
这里是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参数才能输出到文件而不是在屏幕上。 指定一个不同的目标名称来重命名下载的文件。
使用大写 -O来重命名wget。 小写-o将指定传输日志的输出文件。
您可以在Mac机上构buildwget或使用MacPorts直接安装它。
sudo port install wget
这会像一个魅力,也可以尽快更新到最新版本。 尽pipe配方和端口数量less得多,但端口比酿造要稳定得多。
您可以从https://www.macports.org/install.php
安装MacPorts,您可以下载.pkg
文件并进行安装。
你可以用curl
代替。 它默认安装在/usr/bin
。