【问题标题】:Finding the preferred application for a given file extension via unix shell commands通过 unix shell 命令查找给定文件扩展名的首选应用程序
【发布时间】:2009-12-22 22:12:56
【问题描述】:

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

我在这里的理想解决方案是一个命令,让我不必执行以下操作:

okular foo.pdf

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

launch foo.pdf

我没有通过搜索找到答案,而且 DIY 方法也行不通,因为虽然我已经使用 Linux 一段时间了,但我对管理我喜欢的应用程序的内部结构一无所知。

【问题讨论】:

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


    【解决方案1】:

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

    但是主要的 X 桌面环境都定义了这样一个概念,然后你必须使用它们的工具:

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

    现在 Mac OS X 提供了open 命令,其工作方式类似于在查找器中单击文件(也就是说,它询问操作系统...)


    感谢 cmets 中的ephemient 进行了多次更正。我不会讨论mailcap,因为我从来不理解它,也忘记了它的存在......

    【讨论】:

    • xdg-open 不是来自 xdm,它来自 portland.freedesktop.org,并且设计为桌面竞争; KDE 示例不准确,它是kfmclient exec(如果您分发重命名二进制文件,则为kfmclient4 exec);你没有提到传统的mailcap 机制。
    • xdg-open 似乎正是我在这里寻找的。可爱的。
    【解决方案2】:

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

    kde-open <file>
    

    对于 GNOME,有等价物:

    gnome-open <file>
    

    【讨论】:

      【解决方案3】:

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

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

      xdg-open 几乎正是我想要的,但它让丑陋的程序警告溜进了 shell,上面似乎解决了这个问题。

      谢谢大家。

      【讨论】:

      • 管道到NUL 会创建一个名为NUL 的文件。我想你想要/dev/null,这是一个真正的“黑洞”。
      猜你喜欢
      • 2012-02-11
      • 1970-01-01
      • 2011-06-29
      • 2017-12-11
      • 1970-01-01
      • 2021-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多