cat writebug.cn/history

一个开发者的技术博客。

Linux环境下文件关联的设置xdg-mime

xdg-utils
从网上下载了几本中文pdf文档,用系统自带的Evince——文档查看器打开后出现乱码。想到FoxitReader有个linux版本,于是从其官方网站下载下来,打开该文档未出现乱码。
但是因为默认pdf与Envince关联,所以想要用FoxitReader来看pdf文档,只能先打开FoxitReader,然后点文件-》打开菜单,选择pdf文档,才能阅读,稍有麻烦。怎么才能设置默认的pdf关联方式呢?
文件关联的原理主要是设置文件类型与应用程序之间的联系。

文件的类型由mimetype(.xml) 描述,存放在
/usr/share/mime
~/.local/share/mime

应用程序由desktop entry(.desktop)描述,存放在
/usr/share/applications
~/.local/share/applications

xdg-open程序负责根据关联的程序打开文件。
xdg-open先判断文件类型,然后到
/usr/share/applications/defaults.list
~/.local/share/applications/defaults.list
找到指定的.desktop,并根据其中的命令打开应用程序。

xdg-mime可以修改默认文件关联。

查看文件的mime类型:
xdg-mime query filetype a.pdf

查看mime类型的应用程序关联:
xdg-mime query default application/pdf

修改mime类型的应用程序关联:
xdg-mime default evince.desktop application/pdf

还可以直接改defaults.list。该文件存放于:
/usr/share/application
/etc/gnome
~/.local/share/applictions
按照全局性依次降低。
快捷的方式是在Nautilus中选择用其他方式打开,选择想要打开的程序,将“记住打开pdf文档类型文件使用的程序“打勾,会自动创建文件关联,可在~/.local/share/applicaions中看到新加的条目。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
grep "pdf" applicaions >> ~/.local/share/applicaions
"在application文件中查找出pdf文件关联的那一行并追加到~/.local/share/applicaions中