这可能不是 严格地 关于编程,但如果我找不到现成的解决方案,它可能会成为一个编程任务: 在 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-开放几乎正是我想要的,但它可以让丑陋程序警告漏网之鱼进入外壳,这上面似乎解决。

由于所有

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top