查找与 MIME 类型关联的所有程序

Qua*_*odo 6 mime-type

如何查找与 MIME 类型关联的所有程序?可以在默认的系统范围目录中查找 MIME 类型。例如,对于application/pdf

grep -ls application/pdf /usr/share/applications/*
Run Code Online (Sandbox Code Playgroud)

列出所有/usr/share/applicationsapplication/pdf.

但这会忽略其他目录,特别是用户级目录。

有没有类似的命令

xdg-mime query default application/pdf
Run Code Online (Sandbox Code Playgroud)

列出所有关联的程序,而不仅仅是默认程序?

Flo*_*sch 8

这是一个简短的 Python 程序:

#!/usr/bin/env python3

from gi.repository import Gio
import sys

if len(sys.argv) != 2:
    print('Error: Exactly one command line argument needed')
    sys.exit(1)

for app in Gio.app_info_get_all_for_type(sys.argv[1]):
    print(app.get_id())
Run Code Online (Sandbox Code Playgroud)

将其保存在一个文件中,例如/usr/local/bin/mimeapps. 然后你可以像这样使用它

$ mimeapps text/plain  
emacs.desktop
libreoffice-writer.desktop
pluma.desktop
vim.desktop
Run Code Online (Sandbox Code Playgroud)