69

所以,这就是我需要的:

假设我有一个index.html文件。

如何告诉终端使用默认浏览器打开它?

(使用 AppleScript、BASH、...?)

4

8 回答 8

91

从包含 index.html 的目录中,尝试...

open ./index.html

open 命令打开一个文件(或目录,或 URL)。open 包含在 MacOSx 中。细节和选项可以使用

man open

注意:默认应用程序是通过 LaunchServices 确定的。

于 2012-04-04T08:38:37.517 回答
31

您可以使用带有 -a 标志的 open 命令在 Chrome(或任何目标应用程序)中打开文件或位置:

open -a "Google Chrome" index.html

这也适用于 URL,即 open -a "Google Chrome" http://www.apple.com

--->感谢用户“robmathers”,我在堆栈交换中找到了这个答案

于 2014-09-08T19:27:07.017 回答
18

实际上,这并不像看起来那么简单。正如其他答案所建议的那样,OS X 提供了open从 shell 启动与文件类型匹配的应用程序的实用程序。但是,在 HTML 文件的情况下,即使用 Launch Services 注册的文件类型public.html的应用程序,可以但不一定是您的默认浏览器(我认为它是在原始安装中) - 或任何编辑器注册为能够编辑 HTML(在开发系统上并不罕见)。虽然默认浏览器无论如何都注册了URL 协议httpopen,但无法访问该协议处理程序以打开带有.

更复杂的是,尽管处理程序存储在com.apple.LaunchServices.plist可通过defaults命令访问的首选项中,但信息的结构(具有两个相同级别条目的字典,一个表示协议,一个表示处理程序)使得使用defaults.

好消息是有人已经解决了这个问题:HAMsoft Engineering 提供了DefaultApplication shell 实用程序。下载它并将其保存在 shell 可以访问的位置(通常/usr/local/bin,虽然这不在某些 OS X 版本上 shell 的默认路径中 - 请检查 的内容/etc/paths以确保)。可用的,以下命令将在默认浏览器中打开一个 HTML 文件,否则可能会注册任何编辑器/查看器:

open -a "$(/usr/local/bin/DefaultApplication -url 'http:')" "/path/to/your/document.html"
于 2012-04-20T17:23:00.820 回答
3

您还可以使用 Perl 获取默认浏览器open http://example.com -a "$(VERSIONER_PERL_PREFER_32_BIT=true perl -MMac::InternetConfig -le 'print +(GetICHelper "http")[1]')"

于 2012-09-12T21:22:27.497 回答
3

在终端中,您可以运行 open index.html

于 2016-11-26T18:45:39.337 回答
2

通过将文件放在浏览器命令之后,我设法用 chrome 打开了 html 文件。所以,

google-chrome-stable ./index.html

虽然我不确定默认浏览器的调用是什么,但如果你知道它,你可以将它作为别名放在你的 .bashrc 中,从那时起,使用你称之为别名的任何东西,加上文件。

goo ./index.html

只是我的经验,第一反应

于 2016-11-18T15:52:38.760 回答
2

要在默认浏览器中打开 filename.html,请使用:

open filename.html

open 是一个非常好的命令,也是 Mac OS 的一个特性,让我更深地爱上了它。它会自动选择适当的默认应用程序来打开文件。

如果您想在所需的应用程序中打开文件而不是默认文件:

open -a /Applications/Google\ Chrome.app filename.html

Google 后面的反斜杠\用于转义空格字符。

或者,您可以编写:

open -a "/Applications/Google Chrome.app" filename.html

希望这可以帮助你(我知道我很晚了)和其他人!!!。

于 2020-05-08T19:10:08.737 回答
-1

这适用于linux,也应该适用于mac

#!/bin/sh

# open a html file in default browser, not text editor,
# when text editor is set as default app for html files

url=file:///path/to/file.html

protocol=http

app=$(xdg-mime query default x-scheme-handler/$protocol)
# example: chromium-browser.desktop

[ -z "$app" ] && {
  echo "error: xdg-mime could not find default app for protocol $protocol"
  exit 1
}

app=$(basename $app .desktop)

gtk-launch $app "$url"

理想情况下我只能说

xdg-open http+file:///path/to/file.html

但这不起作用

于 2021-11-16T09:50:05.607 回答