通过unix shell命令查找给定文件扩展名的首选应用程序

时间:2009-12-22 22:12:57

标签: unix command-line file-extension user-preferences

这可能不是严格关于编程,但是如果我找不到现成的解决方案,它可能会成为编程任务:在UNIX上,什么是用于确定编程的命令行方法用户首选的给定文件类型的应用程序?

我在这里的理想解决方案是阻止我必须执行以下操作的命令:

okular foo.pdf

并允许我做这样的事情,使用我设定的首选应用程序:

launch foo.pdf

我没有通过搜索找到答案,并且DIY方法不起作用,虽然我已经使用Linux一段时间了,但我不知道管理我首选应用程序的内部。

3 个答案:

答案 0 :(得分:5)

在unix 本身上将是用户用来打开它的那个,因为没有首选应用程序的操作系统级别概念。

然而,主要的X桌面环境都定义了这样的概念,然后你必须使用他们的设施:

    GNOME(duh)中的
  • gnome-open
  • XFCE中的
  • exo-open [参见gnome链接中的评论]
  • xdg-open可以在许多环境中工作(据说可以在KDE中使用)[参见gnome链接中的注释]
  • 在KDE中只是简单kfmclient exec(或kfmclient4 exec)(我无法找到kde-open作为Rob H suggests的引用,并且没有手头的KDE系统试试吧)

现在,Mac OS X提供了open命令,就像点击查找器中的文件一样(也就是说,它会询问操作系统......)


感谢评论中的ephemient进行了一些更正。我不会讨论mailcap,因为我从来没有理解它并且忘记它存在......

答案 1 :(得分:1)

答案因您使用的桌面环境而异。既然你提到了Okular,我会假设你正在使用KDE。所以试试:

kde-open <file>

对于GNOME,有相同的内容:

gnome-open <file>

答案 2 :(得分:0)

为了自己回答这个问题,我已经定义了一个简单的(bash)函数,它以我期望的方式工作:

function show { 
    xdg-open $1 &> NUL
    }

xdg-open几乎就是我想要的,但它让丑陋的程序警告传入shell,上面似乎已经解决了。

谢谢大家。