【问题标题】:Is it possible to call an application selection window (Right click->Open With->Other) from the linux console?是否可以从linux控制台调用应用程序选择窗口(右键单击->打开方式->其他)?
【发布时间】:2010-10-06 15:06:33
【问题描述】:

在 Gnome/KDE 上,您可以选择要在哪个应用程序中打开文件(右键单击文件 -> 打开方式 -> 其他)。是否有可能以这种方式打开文件,但从控制台?

例如:您打印“file.ext”,而不是在具体应用程序中打开,而是强制应用程序选择窗口,然后用户选择 - 启动选定的程序。

我自己也想弄清楚,但没有找到类似的东西。

"edit file.ext" 不符合我的需要,因为它会启动首选应用程序,而您无法选择哪个。而且在我的桌面上还写着: “错误:找不到类型“image/jpeg”的“编辑”邮件封盖规则

那么,我是否能够从控制台强制打开“打开方式”窗口?如果是,你能说怎么做吗? 在 windows 和 mac 上你都可以做这样的事情。

//编辑于2009-02-10 14:17

非常感谢您的回答。命令将在程序代码中使用,所以很遗憾我可能无法制作一些额外的 bash 脚本。

【问题讨论】:

    标签: linux console-application


    【解决方案1】:

    对于 GNOME:

    gnome-open <file>
    

    对于 KDE:

    kfmclient exec <file>
    

    这些命令应该分别在 GNOME 或 KDE 的首选应用程序中打开 &lt;file&gt;,尽管我没有安装任何一个来测试。

    【讨论】:

    • 哦,太好了。解决的问题之一。尽管如此,有时,启动首选应用程序并不总是有效。例如,如果您想编辑“edit.jpg”,您可能希望在 gimp 中启动它,但 gnome-open 将启动查看器。你知道怎么解决吗?
    【解决方案2】:

    传统上,在 Unix 系统(因此也包括 Linux)上,您从控制台(而不是从 UI)启动应用程序。命令行(或控制台)要求您输入应用程序的名称,然后输入文件名(加上一些选项)。

    这允许在 shell 脚本中使用应用程序(或命令)。

    在 Windows 上,没有真正的控制台(DOS 框只是对 MS DOS 黑暗时代的回忆)。因此,MS 开发人员提出了让操作系统将任何内容视为命令的想法。如果它不是真正的命令或应用程序,操作系统将确定文件类型(在 Windows 上通过扩展名,在 Mac 上通过一些标题信息)。对于每种文件类型,在查找表中都会有一个关联的应用程序。

    这就是为什么在 Windows 上,您似乎可以在控制台上输入文件名,然后您将让应用程序编辑该文件。

    如果您想在 Unix 控制台中快速解决此问题,请创建一个名为“open”或“o”的脚本,并使用带有选项 --mime 的文件命令来识别文件类型。然后,您可以使用 case statement 启动您喜欢的编辑器。

    关于“mailcap 规则”的错误:Unix 上有一个名为“mailcap”的文件,您可以在其中定义文件类型的抽象“命令”(打开、编辑、查看、打印)。请参阅mailcap man page

    【讨论】:

    • 感谢您的信息。我很好奇为什么在 linux 上没有简单的解决方案,因为我知道在 Mac 上只有“打开”可执行文件,如果你想强制“应用程序选择窗口”,你可以调用它。比如:open some_file.jpg mac上真的没有这样的解决方案吗?
    • Debian 似乎在 mime 包中有一些东西;但主要原因是 Unix 用户知道他们所有的应用程序,并且他们习惯于键入“命令选项”,所以从来不需要更舒服的东西。另外,您如何将选项发送到应用程序?
    • 脚本将在客户端执行,我不知道他们每个人都在使用什么软件。这是主要问题。你能解释一下你的最后一个问题吗?我没听懂。
    • 最初的问题是关于 Java 的,但似乎没有其他方法可以做什么,只能使用 exec() 函数(您可以在其中编写任何控制台命令)。我将其转换为一般问题,因为我不想将其仅限于 Java 社区。​​span>
    • 没有默认方法可以做到这一点;您必须编写一个脚本,然后使用文件名作为参数调用该脚本。或者您必须教您的 Java 应用程序每种文件类型(和应用程序)。对不起。
    【解决方案3】:

    查看man run-mailcap,您可以更改或添加选定的应用程序,以修改/etc/mailcap~/.mailcap 文件和其他一些文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-04
      • 2011-12-24
      • 2020-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多