通过 unix shell 命令查找给定文件扩展名的首选应用程序
-
21-09-2019 - |
题
这可能不是 严格地 关于编程,但如果我找不到现成的解决方案,它可能会成为一个编程任务: 在 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 中(我还没有找到对kde-open
作为 罗布 H 建议, ,并且手头没有 KDE 系统来尝试)
现在 Mac OS X 提供了 open
命令的作用类似于单击查找器中的文件(也就是说,它询问操作系统...)
几处更正感谢 短暂的 在评论中。我不会讨论 mailcap
, ,因为我从来不理解它并且忘记了它的存在......
其他提示
答案的不同取决于你使用的桌面环境。既然你提到的Okular中,我要你使用KDE承担。因此,尝试:
kde-open <file>
有关GNOME,存在等效的:
gnome-open <file>
要回答这个问题我自己,我已经定义了一个简单的(bash)的功能,在我所期望的方式工作:
function show {
xdg-open $1 &> NUL
}
XDG-开放几乎正是我想要的,但它可以让丑陋程序警告漏网之鱼进入外壳,这上面似乎解决。
由于所有
不隶属于 StackOverflow