Ubuntu 17.10:为无配置文件的tar.gz程序二进制文件关联扩展名
解决Ubuntu 17.10中自定义程序的文件关联问题
既然你已经搞定了程序二进制文件的终端运行,接下来只要让系统“认”到这个程序,并把它和目标文件扩展名绑定就行,分几步操作:
1. 创建程序的.desktop配置文件
Ubuntu桌面是通过.desktop文件识别应用的,咱们手动建一个:
- 打开终端,进入用户级的应用配置目录:
cd ~/.local/share/applications/ - 用文本编辑器新建一个配置文件,比如叫
my-app.desktop(换成你自己的程序名就行):nano my-app.desktop - 粘贴下面的内容,记得替换成你的程序信息:
[Desktop Entry] Type=Application Name=你的程序名称 # 比如叫MyFileViewer就写这个 Exec=/绝对路径/到/你的/二进制文件 %f # 必须填绝对路径,%f是让程序接收单个文件路径的参数 Comment=简单描述下程序功能,比如“专门打开XXX格式文件的工具” Icon=text-editor # 可选,没自定义图标的话,用系统自带的图标名就行,比如text-editor、utilities-terminal Categories=Utility; # 可选,给程序分类,比如Utility是工具类,Office是办公类 MimeType= # 先留空,后面填要关联的文件类型 - 保存退出(nano里按
Ctrl+O回车,再Ctrl+X) - 给这个文件加可执行权限:
chmod +x my-app.desktop
2. 给目标扩展名定义MIME类型(可选)
如果你的目标扩展名(比如.xyz)还没被系统分配对应的MIME类型,得先定义:
- 在用户级MIME配置目录新建XML文件,比如
x-my-custom-type.xml:nano ~/.local/share/mime/packages/x-my-custom-type.xml - 粘贴下面的内容,替换扩展名和描述:
<?xml version="1.0" encoding="UTF-8"?> <mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info"> <mime-type type="application/x-my-custom-type"> <comment>自定义格式文件</comment> <glob pattern="*.xyz"/> <!-- 这里换成你的目标扩展名,比如*.abc --> </mime-type> </mime-info> - 更新系统的MIME数据库:
update-mime-database ~/.local/share/mime/
3. 把MIME类型关联到你的程序
回到之前创建的.desktop文件,把刚才定义的MIME类型(比如application/x-my-custom-type)填到MimeType=后面,多个类型用分号分隔:
MimeType=application/x-my-custom-type;application/x-another-type;
保存后,更新系统的应用数据库:
update-desktop-database ~/.local/share/applications/
4. 验证效果
现在右键点击目标扩展名的文件,选“用其他应用打开”,就能看到你的程序了。要是想设为默认打开方式,右键文件→属性→打开方式,选你的程序再点“设为默认”就行。
小提醒
Exec=后面一定要填绝对路径,可以用readlink -f ./你的二进制文件来获取准确路径- 如果程序需要同时处理多个文件,把
%f换成%F - 尽量用用户级配置(就是上面的
~/.local/目录下的操作),不用sudo,也不会影响其他用户
内容的提问来源于stack exchange,提问作者leo_damico
相关产品推荐
相关产品推荐

