メディアタイプ識別子はどこに保存され、どのように追加しますか?

メディアタイプ識別子はどこに保存され、どのように追加しますか?

htmlファイルを作成すると、LinuxはMIMEタイプをtext / htmlとして宣言できます。この問題はどのように処理されますか? 「識別子」はどこに保存されますか?実装された認識機能を使用してMIMEタイプを追加するにはどうすればよいですか?

答え1

通常、この問題を処理する2つのライブラリがあります。これマイム情報の共有図書館は最大の図書館です。しかし、また文書「libmagic」のユーティリティを提供します。

これらはそれぞれ独自のデータベースを維持しています。しかし、shared-mime-infoはより一般的でスケーラブルに設計されています。

/usr/share/mimeエントリを追加する方法はディストリビューションによって異なりますが、私のシステムの場所はです。デフォルトでは、ファイル形式がどのように認識されるかを説明するxmlファイルを追加するだけです(私のシステムでは、パッケージはそのファイルをに保存します/usr/share/mime/packages)。
xmlファイルを追加したら、update-mime-databaseコマンドを使用してキャッシュを再生成します。
(shared-mime-infoプロジェクトのウェブサイトには良いチュートリアルがあります:http://freedesktop.org/wiki/Specifications/AddingMIMETutor/)

サンプルファイルは次のとおりです。

<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
  <mime-type type="image/png">
         <comment xml:lang="en">PNG image</comment>
         <comment xml:lang="af">png beeld</comment>
         ...
         <magic priority="50">
                <match type="string" value="\x89PNG" offset="0"/>
         </magic>
         <glob pattern="*.png"/>
  </mime-type>
</mime-info>

一般的なリソース(xmlファイルの完全な仕様など)もプロジェクトサイトで最もよく入手できます。http://freedesktop.org/wiki/Specifications/shared-mime-info-spec/

関連情報