这可能不是严格意义上的编程,但如果我找不到现成的解决方案,它可能会成为一项编程任务: 在 UNIX 上,确定给定文件类型的用户首选应用程序的命令行方法是什么?
我在这里理想的解决方案是一个命令,让我不必执行以下操作:
okular foo.pdf
并允许我做这样的事情,使用我设置的首选应用程序:
launch foo.pdf
我通过搜索没有找到答案,而且 DIY 方法也行不通,因为虽然我已经使用 Linux 一段时间了,但我对管理我喜欢的应用程序的内部结构一无所知。
这可能不是严格意义上的编程,但如果我找不到现成的解决方案,它可能会成为一项编程任务: 在 UNIX 上,确定给定文件类型的用户首选应用程序的命令行方法是什么?
我在这里理想的解决方案是一个命令,让我不必执行以下操作:
okular foo.pdf
并允许我做这样的事情,使用我设置的首选应用程序:
launch foo.pdf
我通过搜索没有找到答案,而且 DIY 方法也行不通,因为虽然我已经使用 Linux 一段时间了,但我对管理我喜欢的应用程序的内部结构一无所知。
在 unix本身上,这将是用户用来打开它的那个,因为没有操作系统级别的首选应用程序概念。
然而,主要的 X 桌面环境都定义了这样一个概念,然后你必须使用它们的工具:
gnome-open
在 GNOME 中(呃)exo-open
在 XFCE [查看 gnome 链接中的评论]xdg-open
可以在许多环境中工作(据说在 KDE 中工作)[参见 gnome 链接中的评论]kfmclient exec
(或kfmclient4 exec
)在 KDE 中(我无法找到Rob H 建议kde-open
的引用,并且手头没有 KDE 系统来尝试它)现在 Mac OS X 提供了open
类似于在查找器中单击文件的命令(也就是说,它询问操作系统...)
感谢评论中的ehemient的一些更正。我不会讨论mailcap
,因为我从来不理解它,并且忘记了它的存在......
答案因您使用的桌面环境而异。既然您提到了 Okular,我将假设您使用的是 KDE。所以试试:
kde-open <file>
对于 GNOME,有等价的:
gnome-open <file>
为了自己回答这个问题,我定义了一个简单的(bash)函数,它以我期望的方式工作:
function show {
xdg-open $1 &> NUL
}
xdg-open 几乎正是我想要的,但它让丑陋的程序警告溜进了外壳,上面似乎解决了这个问题。
谢谢大家。