76 votes

Où sont stockées les associations de fichiers ?

Comment Ubuntu ou tout autre système Linux stocke-t-il les associations de fichiers ?

Y a-t-il un /etc/asscociations ou autre ?

Je sais que je peux cliquer avec le bouton droit de la souris sur un fichier et le modifier via "ouvrir avec", mais je suis simplement curieux de savoir comment il est stocké en interne.

70voto

Evan Points 1318

Le gestionnaire de fichiers (Nautilus, par défaut) utilise la balise Type MIME d'un fichier pour déterminer avec quel programme l'ouvrir. Lorsqu'une application est installée, elle peut spécifier les types MIME qu'elle peut ouvrir et la commande à utiliser pour ouvrir les fichiers dans le fichier .desktop qui est placé dans le dossier de l'application. /usr/share/applications . Il s'agit du fichier utilisé pour les menus, les raccourcis de bureau, etc.

Par exemple, GIMP possède le fichier .desktop suivant :

[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;

Voir le MimeType Ce champ énumère les types MIME pris en charge. Exec indique au système d'utiliser la commande gimp-2.7 %U en remplaçant '%U' par les fichiers à ouvrir. (Notez que GIMP 2.7 est une version que j'ai installée à partir d'un PPA, et qui est donc supérieure à la version actuelle dans les dépôts Ubuntu).

Lorsque le paquet d'applications est installé, le système extrait ces données de type MIME dans une base de données plus facilement accessible, car la recherche dans chaque fichier .desktop prendrait trop de temps si elle était effectuée à chaque ouverture de fichier.

Cela indique au système quelles applications puede à utiliser pour ce type MIME et fournit les applications dans la liste "Ouvrir avec". La valeur par défaut est définie ailleurs. Le fichier /usr/share/applications/defaults.list fournit des informations sur les valeurs par défaut du système. Sauf si vous en décidez autrement, ce sont les applications utilisées lorsque vous "ouvrez" un fichier.

26voto

Pour compléter l'excellente réponse de dv3500ea, j'aimerais ajouter quelques informations sur ce qui se passe lorsque vous changez d'association.

Alors que le fichier defaults.list (que vous pouvez trouver en tapant 'locate defaults.list') fournit la liste des applications qui sont associées à chaque type MIME, toutes les personnalisations que vous faites sont stockées dans votre répertoire personnel, dans ~/.local/share/applications/mimeapps.list. Ainsi, si vous ajoutez ou supprimez des associations, ou modifiez l'association par défaut, ce fichier est mis à jour.

Le Guide d'administration du système de bureau GNOME à l'adresse http://library.gnome.org/admin/system-admin-guide/stable/ ne semble pas parler de mimeapps.list, mais j'ai trouvé la description suivante sur http://live.gnome.org/SysAdminGuideUpdate :

mimeapps.list est situé dans $XDG_DATA_DIRS/applications. Son but est d'ajouter ou de supprimer des associations dans les applications. nautilus écrit ~/.local/share/applications/mimeapps.list lorsque l'utilisateur effectue des modifications dans la dialogue "Ouvrir avec".

24voto

Bryan Leaman Points 241

J'ai constaté que sur mon systÃ?me (Debian Jessie), il y a aussi un fichier ~/.config/mimeapps.list qui avait une association que j'avais accidentellement créée pour ouvrir un type de fichier spécifique avec gedit. Aucune des méthodes standard de correction de ce problème (paramètres par défaut de l'application, programme de Thunar, etc. ouvrir avec ) reflétait cela, mais gedit était l'application par défaut.

J'ai pu retirer la ligne de ~/.config/mimeapps.list et maintenant l'application correcte ouvre le fichier.

11voto

Caleth Points 437

J'ai pu établir une association comme ceci :

xdg-mime default xnview.desktop image/jpeg

Vous pouvez également supprimer des associations et faire d'autres choses : man xdg-mime

Je n'avais pas besoin de courir sudo update-desktop-database .

8voto

J'ai trouvé ce lien concernant l'association par défaut, il pourrait être utile. https://wiki.archlinux.org/index.php/Default_Applications
pour une association mondiale :

/usr/share/applications/mimeapps.list

par association d'utilisateurs :

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

La syntaxe est la suivante :

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

[Associations ajoutées] est utilisée pour spécifier les applications préférées (par défaut) par ordre décroissant de préférence. ce qui signifie que fichier de bureau1 est le plus privilégié et fichier de bureauN est la moins préférée.
[Associations supprimées] est utilisée pour supprimer explicitement toute association précédemment héritée.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X