以注释开头的文件具有错误的 MIME 类型

以注释开头的文件具有错误的 MIME 类型

在 Ubuntu 14.04 中,我有一个包含一组 LESS 文件的目录,所有文件都带有.less扩展名。除三个文件外,所有文件在“属性”>“基本”下都显示 mime 类型plain text document (text/plain)。其他三个文件报告为,C source code (text/x-csrc)这意味着它们具有不同的图标,更烦人的是,它们使用不同的默认应用程序打开。

我把问题缩小到了文件内容。似乎所有以 CSS 注释块 ( /* Comment */) 或 LESS 内联注释 ( // Comment) 开头的文件的 MIME 类型都是text/x-csrc

我尝试编辑该/etc/mime.types文件以使系统能够识别该扩展。首先,我添加了 less 作为扩展text/css

text/css css less

然后我在命令行上运行sudo update-mime-database /usr/share/mime,但没有成功,文件仍然有错误的 mime 类型,所以我尝试text/plain以相同的方式将其添加为扩展名,但同样没有结果。所以我尝试添加一种新的 mime 类型:

text/less less

我再次运行该update-mime-database命令但仍然没有运气。

我怎样才能让 Ubuntu 根据文件的扩展名而不是文件内容来处理文件?

答案1

将以下内容保存为例如less.xml

<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
  <mime-type type="text/x-less">
    <comment>LESS file</comment>
    <glob pattern="*.less"/>
  </mime-type>
</mime-info>

然后打开终端并运行

xdg-mime install --novendor less.xml

现在所有具有扩展名的文件.less都应具有 MIME 类型text/x-less

共享 MIME 信息数据库如果您想了解有关 MIME 类型如何定义的更多信息。

相关内容