ファイルの関連付けはどこに保存されますか?


67

Ubuntuまたは他のLinuxシステムはファイルの関連付けをどのように保存しますか?

/etc/asscociationsファイルなどがありますか?

ファイルを右クリックして「開く」を使用して変更できることは知っていますが、内部にどのように保存されているのか知りたいだけです。

回答:


67

ファイルマネージャ(デフォルトではNautilus)は、ファイルのMIMEタイプを使用して、どのプログラムでファイルを開くかを決定します。アプリケーションをインストールすると、開くことのできるMIMEタイプと、にある.desktopファイル内のファイルを開くために使用するコマンドを指定できます/usr/share/applications。これは、メニュー、デスクトップショートカットなどに使用されるファイルです。

たとえば、GIMPには次の.desktopファイルがあります。

[Desktop Entry]
Version=1.0
Type=Application
Name=GNU Image Manipulation Program
GenericName=Image Editor
Comment=Create images and edit photographs
Exec=gimp-2.7 %U
TryExec=gimp-2.7
Icon=gimp
Terminal=false
Categories=Graphics;2DGraphics;RasterGraphics;GTK;
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=GIMP
X-GNOME-Bugzilla-Component=General
X-GNOME-Bugzilla-Version=2.7.2
X-GNOME-Bugzilla-OtherBinaries=gimp-2.7
StartupNotify=true
MimeType=application/postscript;application/pdf;image/bmp;image/g3fax;image/gif;image/x-fits;image/pcx;image/x-portable-anymap;image/x-portable-bitmap;image/x-portable-graymap;image/x-portable-pixmap;image/x-psd;image/x-sgi;image/x-tga;image/x-xbitmap;image/x-xwindowdump;image/x-xcf;image/x-compressed-xcf;image/tiff;image/jpeg;image/x-psp;image/png;image/x-icon;image/x-xpixmap;image/svg+xml;application/pdf;image/x-wmf;image/jp2;image/jpeg2000;image/jpx;image/x-xcursor;

MimeTypeフィールドを参照してください-これはサポートされているMIMEタイプをリストします。このExecフィールドはシステムにコマンドを使用するよう指示しgimp-2.7 %U、 '%U'を開くファイルで置き換えます。(GIMP 2.7はPPAからインストールしたバージョンなので、Ubuntuリポジトリの現在のバージョンよりも高いことに注意してください)。

アプリケーションパッケージがインストールされると、ファイルを開くたびに各.desktopファイルを検索すると時間がかかりすぎるため、システムはこのMIMEタイプデータをより簡単にアクセスできるデータベースに抽出します。

これにより、そのMIMEタイプに使用できるアプリケーションシステムに通知され、「開く」リストのアプリケーションが提供されます。デフォルトは別の場所で定義されています。このファイル/usr/share/applications/defaults.listは、システムのデフォルトに関する情報を提供します。特に指定しない限り、これらはファイルを「開く」ときに使用されるアプリケーションです。


7
/usr/share/applications .desktopファイル内のMIMEタイプを変更した後、そのMIMEデータベースを再作成して動作中の新しい関連付けを確認するコマンドはありますか?
レッサンドロ

12
はい。jarrpa.net/2011/10/28/…をsudo update-desktop-database参照してください
NoBugs

ローカル変更のためのより適切な場所は/usr/local/share/applicationsです。デフォルトではgtkもそこにあると思います。私のシステムでは動作しますが、Ubuntu 7.04以降からアップグレードされています(再インストールされていません)。
ピーターコーデス

2
Ubuntuはfreedesktop.orgに準拠しているようです:standards.freedesktop.org/mime-apps-spec/…素晴らしいプロジェクト。
Ciro Santilli新疆改造中心法轮功六四事件

23

dv3500eaの優れた答えを補足するために、関連付けを変更したときに何が起こるかについての情報を追加したいと思います。

defaults.list(「locate defaults.list」と入力すると検索できます)は各MIMEタイプに関連付けられたアプリケーションのリストを提供しますが、行ったカスタマイズはホームディレクトリの〜/ .local /に保存されますshare / applications / mimeapps.list。したがって、関連付けを追加または削除するか、デフォルトの関連付けを変更すると、このファイルが更新されます。

http://library.gnome.org/admin/system-admin-guide/stable/にある GNOMEデスクトップシステム管理ガイドではmimeapps.listについて説明しているようには見えませんが、http://live.gnomeで次の説明を見つけました。 .org / SysAdminGuideUpdate

mimeapps.listは$ XDG_DATA_DIRS / applicationsにあります。その目的は、アプリケーションにMIMEの関連付けを追加または削除することです。ユーザーが[アプリケーションから開く]ダイアログで変更を行うと、nautilusは〜/ .local / share / applications / mimeapps.listを書き込みます。


1
しかし、Ubuntu 12.04を使用すると、のmimeapps.listエントリによってが上書きされることがわかりますdefaults.list
フィーエラ

1
14.04に、でs / vlc / mplayer / ~/.local/share/applications/mimeapps.listを実行でき、pcmanfmなどの実行中のプロセスは再起動せずに変更を取得しました。(mplayer.desktopはただのmplayerを実行している私は1つが古いのmplayerでインストールは/ usr / local、私は推測した場合IDKから転がっていた。。MimeType=list;必要でしたか。
ピーター・コルド

より正確には、mimeapps.list次の検索パスのどこにでもすることができspecifications.freedesktop.org/mime-apps-spec/...
チロSantilli新疆改造中心法轮功六四事件

18

私のシステム(Debian Jessie)にも、~/.config/mimeapps.listgeditで特定のファイルタイプを開くために誤って作成した関連付けが存在することがわかりました。これを修正する標準的な方法(デフォルトのアプリケーション設定、Thunarのプロパティで開く)はこれを反映していませんでしたが、geditはデフォルトのアプリケーションでした。

行を削除できたので~/.config/mimeapps.list、正しいアプリケーションがファイルを開きます。


2
おかげで、FirefoxがGeditですべてを開いてしまうのを偶然助けてくれました。openSUSE 13.2では、「application / octet-stream = org.gnome.gedit.desktop;」の行を削除しました。:)
user31389

3
ubuntu 15.04以降、ユーザー固有の変更もに保存され~/.config/mimeapps.listます。
DJCrashdummy

2
より正確には、mimeapps.list以下の検索パスのどこにでも使用できますspecifications.freedesktop.org/mime-apps-spec/...
チロSantilli新疆改造中心法轮功六四事件

8

デフォルトの関連付けに関するこのリンクを見つけましたが、役に立つかもしれません。 グローバルな関連付けのhttps://wiki.archlinux.org/index.php/Default_Applications

/usr/share/applications/mimeapps.list

ユーザーごとの関連付け:

~/.local/share/applications/mimeapps.list

構文は次のとおりです。

[Added Associations]
mimetype=desktopfile1;desktopfile2;...;desktopfileN
...
[Removed Associations]
mimetype=desktopfile1;desktopfile2;...;desktopfileN

[追加された関連付け]セクションは、優先度を下げる優先(デフォルト)アプリケーションを指定するために使用されます。つまり、desktopfile1が最も優先され、desktopfileNが最も優先されません
[Removed Associations]セクションは、以前に継承されたアソシエーションを明示的に削除するために使用されます。


1
これはarchlinuxサイトに由来し、Ubuntuに必ずしも適用される/usr/share/applications/mimeapps.listわけではなく、存在しません。
ガントベルト

これを指摘していただきありがとうございますが、ユーザーはUbuntuまたは他のLinuxシステムで言った、これはこれも彼の質問への答えであることを意味します:P。
IdontCareAboutReputationPoints

5
あなたが交換した場合、この答えは完全に大丈夫ですmimeapps.desktopdefaults.desktop
SZX

8

次のような関連付けを設定できました。

xdg-mime default xnview.desktop image/jpeg

関連付けを削除して、他のことを行うこともできます。 man xdg-mime

走る必要はありませんでしたsudo update-desktop-database


7

次の行を使用truecrypt.desktop~/.local/share/applicationsてファイルを作成します。

[Desktop Entry]
Encoding=UTF-8
Type=Application
Icon=
Exec=/usr/bin/truecrypt %U
Name=truecrypt
Comment=manage truecrypt volumes

次に、ファイル~/.local/share/applications/mimeapps.listを編集し、次の行を追加します。

application/octet-stream=truecrypt.desktop

次のコマンドを実行して、TruecryptのMIMEタイプを見つけました。

file --mime-type -b <any truecrypt filename>

いい答えです。kdeを使用するが、firefoxのようなgtkネイティブプログラムをいくつか持っているユーザーには有効です。
-naught101

5

mimeapps.list 検索パス

他の人はこのファイルについて言及していますが、その場所を正確に説明している人はいません。

freedesktop.org標準はhttps://specifications.freedesktop.org/mime-apps-spec/mime-apps-spec-1.0.htmlで次のように述べています

このファイルの検索順序は次のとおりです。

$XDG_CONFIG_HOME/$desktop-mimeapps.list user overrides, desktop-specific (for advanced users)
$XDG_CONFIG_HOME/mimeapps.list             user overrides (recommended location for user configuration GUIs)
$XDG_CONFIG_DIRS/$desktop-mimeapps.list sysadmin and ISV overrides, desktop-specific
$XDG_CONFIG_DIRS/mimeapps.list             sysadmin and ISV overrides
$XDG_DATA_HOME/applications/$desktop-mimeapps.list  for completeness, deprecated, desktop-specific
$XDG_DATA_HOME/applications/mimeapps.list             for compatibility, deprecated
$XDG_DATA_DIRS/applications/$desktop-mimeapps.list    distribution-provided defaults, desktop-specific
$XDG_DATA_DIRS/applications/mimeapps.list              distribution-provided defaults

そして、それらの環境変数のデフォルト値はhttps://specifications.freedesktop.org/basedir-spec/basedir-spec-0.6.htmlで提供されます

  • $XDG_DATA_HOME$HOME/.local/share
  • $XDG_CONFIG_HOME$HOME/.config
  • $XDG_DATA_DIRS:なし、に追加 XDG_DATA_HOME
  • $XDG_CONFIG_DIRS:なし、に追加 XDG_CONFIG_HOME

Ubuntuの古いバージョンではがチェックされない場合~/.configがあるため~/.local/share、同様に試してください。

次のようなコマンド:

 xdg-settings set default-web-browser chromium-browser.desktop
 xdg-settings get default-web-browser

これらのファイルは自動的に編集されます。


2

すべてのユーザーの場合:

/usr/share/applications/defaults.list

各ユーザーには、これらのデフォルトをオーバーライドするための構成ファイルがあります。

〜/ .config / mimeapps.list

デフォルトの無効化に使用される可能性のある場所については、https: //specifications.freedesktop.org/mime-apps-spec/mime-apps-spec-1.0.1.html も参照してください

関連付けを変更するファイルのMIMEタイプを知っている必要があります。

また、すべての関連付けは、次を使用してコマンドラインで処理および変更できます。

xdg-mime


1

Freedesktop.org(以前はX Desktop Groupと呼ばれていたため、「XDG」の略語)は、現在このようなX標準を推進しているグループです(Wikipediaで詳細をご覧ください)。

warvariucの答えは、すでにxdg-mimeの使用法に言及しています:

xdg-mime default xnview.desktop image/jpeg

 

画像エディターとビューアーでたくさん遊んだ後、特に珍しい画像タイプ間で、ほとんど一貫性のない異なる画像タイプの異なるビューアーになりました。

上記のコマンドを使用して、イメージビューアーによって制御される各MIMEタイプに割り当てimage-viewer.desktop、それらの1つを複製することで新しいMIMEタイプを作成しました(これはオプションで、単にお気に入りを再利用できます)。次に、新しい優先アプリケーションと互換性のないMIMEタイプがないことを手動で確認しました。最後に、そのアプリケーションを他のすべてのアプリケーションのMIMEタイプのデフォルトに設定しました。

sed '/^MimeType=/!d; s///; s/;/\n/g' \
  /usr/share/applications/{ristretto,geeqie,gthumb}.desktop |sort -u \
  |xargs xdg-mime default image-viewer.desktop

これは調べて.desktop、視聴者のそれぞれのファイル(リストレットGeeqie、およびgThumbの私の場合は)、(で始まるされたMIMEの定義を抽出MimeType=した後、セミコロンで区切られたリストが含まれている)を、(以前にマッチした)序文ラベルを削除し、リストを行ごとに1つのエントリに分割します。 sort -u次に、冗長な行を削除し、それらを渡してxdg-mime新しいデフォルトを設定します。

(ライブで実行する前にこれをテストする場合は、に変更xargsするxargs echoと、実行する代わりに結果のコマンドが出力されます。)

この手法は、ターゲットアプリ用に再生したいものすべてに有効です。新しい.desktopファイルを作成する必要さえありません(既存のファイルを使用できます)。画像プレビューア間の忠誠心を必然的に変更するときに、その1つのファイルを変更するだけで済むように、追加のステップを実行しました。


1

Ubuntu 18.04では、優先順位は次のとおりであることがわかりました。

  1. ~/.local/share/applications/defaults.list
  2. /usr/share/applications/defaults.list
  3. ~/.config/mimeapps.list (「他のアプリケーションで開く」はこれを更新します)
  4. ~/.local/share/applications/mimeapps.list
  5. 初遭遇した試合mimeinfo.cacheから生成されている互換性のあるアプリケーションのレジストリ.desktopに存在するファイル/usr/share/applications/usr/local/share/applications、そして使用して再生することができますupdate-desktop-database
  6. (使われたことがない) /etc/gnome/defaults.list
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.