命令行是否可以根据文件类型获取用于打开特定文件的推荐程序列表?例如,.pdf
文件将具有open with...
使用程序Evince
和Document Viewer
.
我在大多数情况下都使用命令行,但有时我会忘记我想用来打开特定类型文件的程序的名称。
顺便说一句,我正在使用 Ubuntu 13.10。
专家提示
感谢@slm 在下面选择了答案,我在名为 的文件中制作了以下 bash 脚本openwith.sh
:
xdg-mime query default $(xdg-mime query filetype $1)
Run Code Online (Sandbox Code Playgroud)
添加为别名或直接作为openwith
命令执行。
desktop-environment freedesktop mime-types files file-opening
我在没有桌面环境的情况下运行 Debian Jessie(我使用平铺窗口管理器 i3)并且喜欢使用xdg-open
首选应用程序快速打开文件。不过,我在为 PDF 文件设置首选应用程序时遇到了一个持续的问题。简而言之,这是我的问题:
$ xdg-mime query filetype ~/Downloads/document.pdf
application/pdf
$ xdg-mime query default application/pdf
/usr/share/applications/qpdfview.desktop
$ xdg-open ~/Downloads/document.pdf
[opens gimp!]
Run Code Online (Sandbox Code Playgroud)
任何想法都将不胜感激 - 这已经困扰了我大约一年。我曾经设法(暂时)修复它的唯一方法是直接编辑mimeinfo.cache
并gimp
从application/pdf
记录中删除对 的引用。
是的,/usr/share/applications/qpdfview.desktop
存在并包含qpdfview
二进制文件的正确位置。(确实,这个 .desktop 文件在我手动编辑时使用mimeinfo.cache
。)
文件关联通常是在桌面环境中进行的,但是如何使用命令行获取与文件关联的应用程序列表?
就像是:
$ getassoc foo.pdf <CR>
$ acroread, okular
Run Code Online (Sandbox Code Playgroud)
不需要是命令,可以在任何 Gnome 文件上加cat
+grep
我正在使用 Gnome 2.28.2。