如何在中使用前缀mime 信息文件的元素?

如何在中使用前缀mime 信息文件的元素?

我有一堆 格式的文件xyz-timestamp.log,我想将其与普通日志文件之外的不同应用程序关联。

我阅读了 mime 类型,发现我可以添加一个 mime-info 文件来.local/share/mime/packages描述我的新 mime 类型。

我想出的文件如下所示:

<?xml version="1.0" encoding="utf-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
    <mime-type type="text/x-xyz-log">
        <comment>XYZ Log</comment>
        <glob pattern="xyz*.log" weight="100" />
    </mime-type>
</mime-info>

但它没有抓住。似乎只有*.log模式或特定文件(如sources.listapt 工作),而不是星号位于中间的模式或特定文件。

免费桌面标准没有提到不支持某些全局功能或您拥有的功能,所以我对此完全一无所知。

更新:

我终于通过使用该元素让它工作了<magic>。仅凭这一点似乎还不够,因为即使在声明这是它的子类型之后,我仍然被大量普通日志文件击败。只有我自己的球体和魔法的结合才能让它发挥作用。

<?xml version="1.0"?>                                                           
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">       
    <mime-type type="application/x-xyz-log">                                 
        <comment>XYZ Log</comment>                                           
        <sub-class-of type="text/x-log" />                                                               
        <glob pattern="*.log" />                                                                                  
        <magic priority="100">                                                  
            <match type="string" offset="0:256" value="XYZ-Service started. LOLJK" />
        </magic>                                                                
    </mime-type>                                                                
</mime-info>   

答案1

全局模式似乎是故意被简化的;这部分关于该元素指出:

KDE 的 glob 系统取代了 GNOME 和 ROX 的 ext/regex 字段,因为检测“*.ext”形式的模式并将其存储在内部扩展哈希表中是很简单的。两个桌面都没有充分利用正则表达式的全部功能,无论如何,glob 模式更适合文件名匹配。

相关内容