如何在Ubuntu终端中使用指定应用打开文件?xdg-open默认应用问题
解决xdg-open强制用指定应用打开文件的问题
我太懂这个困扰了!xdg-open默认会遵循系统的文件关联设置,但其实有几个实用的方法能让你强制指定应用打开目标文件,下面给你拆解几个靠谱方案:
方案1:直接调用目标应用命令(最稳妥)
完全绕开xdg-open的关联机制,直接用你想使用的应用程序命令打开文件,比如:
- 用VS Code打开文本文件:
code example.txt - 用GIMP编辑图片:
gimp vacation.jpg
这种方式没有任何“默认关联”的干扰,百分百按你的需求打开文件。
方案2:临时修改xdg的默认关联(单次生效)
如果你习惯用xdg-open的语法,可以临时修改对应文件类型的默认应用:
- 先查目标文件的MIME类型:
比如文本文件会返回xdg-mime query filetype example.txttext/plain - 临时设置该MIME类型的默认应用(以VS Code为例):
xdg-mime default code.desktop text/plain - 现在用xdg-open打开就会用指定应用了:
xdg-open example.txt - 如果要恢复原来的默认应用,记得把
code.desktop换成你系统原本的默认应用桌面文件名(比如GNOME自带的文本编辑器是org.gnome.gedit.desktop)。
方案3:用run-mailcap工具灵活指定
run-mailcap是另一个处理MIME文件关联的工具,支持直接指定打开应用:
run-mailcap --action=view --viewer=code example.txt
这里的--viewer参数直接填你想用的应用命令,非常灵活。
小提示:查找应用的desktop文件名
如果用方案2的话,需要知道目标应用的desktop文件名称,你可以用下面的命令查找:
ls /usr/share/applications/ | grep 应用名称关键词
比如查找VS Code的desktop文件:ls /usr/share/applications/ | grep code
内容的提问来源于stack exchange,提问作者Somraj
相关产品推荐
相关产品推荐

