it-swarm.com.de

Wo werden Dateizuordnungen gespeichert?

Wie speichert Ubuntu oder ein anderes Linux-System Dateizuordnungen?

Gibt es eine /etc/asscociations Datei oder so?

Ich weiß, dass ich mit der rechten Maustaste auf eine Datei klicken und sie über "Öffnen mit" ändern kann, aber ich bin nur neugierig, wie sie intern gespeichert wird.

66
Stann

Der Dateimanager (standardmäßig Nautilus) verwendet das MIME-Typ einer Datei, um zu bestimmen, mit welchem ​​Programm er geöffnet werden soll. Wenn eine Anwendung installiert ist, kann sie angeben, welche MIME-Typen sie öffnen kann, und den Befehl zum Öffnen der Dateien in der .desktop-Datei, die sich in /usr/share/applications befindet. Dies ist die Datei, die für Menüs, Desktop-Verknüpfungen usw. verwendet wird.

Beispielsweise verfügt GIMP über die folgende .desktop-Datei:

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

Siehe Feld MimeType - Hier werden die unterstützten MIME-Typen aufgelistet. Das Feld Exec weist das System an, den Befehl gimp-2.7 %U zu verwenden und '% U' durch die zu öffnenden Dateien zu ersetzen. (Hinweis: GIMP 2.7 ist eine Version, die ich von einem PPA installiert habe, also höher als die aktuelle Version in den Ubuntu-Repositories).

Wenn das Anwendungspaket installiert ist, extrahiert das System diese MIME-Typdaten in eine leichter zugängliche Datenbank, da das Durchsuchen der einzelnen .desktop-Dateien bei jedem Öffnen einer Datei zu lange dauern würde.

Dies teilt dem System mit, welche Anwendungen für diesen MIME-Typ verwendet werden können , und stellt die Anwendungen in der Liste "Öffnen mit" bereit. Der Standard ist an anderer Stelle definiert. Die Datei /usr/share/applications/defaults.list enthält die Informationen für die Systemstandards. Sofern Sie nichts anderes auswählen, sind dies die Anwendungen, die beim 'Öffnen' einer Datei verwendet werden.

66
dv3500ea

Um die ausgezeichnete Antwort von dv3500ea zu ergänzen, möchte ich einige Informationen darüber hinzufügen, was passiert, wenn Sie Ihre Assoziationen ändern.

Während die defaults.list (die Sie finden, indem Sie 'locate defaults.list' eingeben) die Liste der Anwendungen enthält, die jedem MIME-Typ zugeordnet sind, werden alle von Ihnen vorgenommenen Anpassungen in Ihrem Ausgangsverzeichnis in ~/.local/gespeichert. share/applications/mimeapps.list. Wenn Sie also Zuordnungen hinzufügen oder entfernen oder die Standardzuordnung ändern, wird diese Datei aktualisiert.

Im GNOME Desktop-Systemverwaltungshandbuch unter http://library.gnome.org/admin/system-admin-guide/stable/ wird mimeapps.list anscheinend nicht behandelt, aber ich habe die folgende Beschreibung gefunden http://live.gnome.org/SysAdminGuideUpdate :

mimeapps.list befindet sich in $ XDG_DATA_DIRS/applications. Sie dient zum Hinzufügen oder Entfernen von MIME-Zuordnungen zu Anwendungen. nautilus schreibt ~/.local/share/applications/mimeapps.list, wenn der Benutzer Änderungen im Dialogfeld "Öffnen mit" vornimmt.

23
user8979

Ich habe festgestellt, dass es auf meinem System (Debian Jessie) auch einen ~/.config/mimeapps.list gibt, dessen Zuordnung ich versehentlich erstellt habe, um einen bestimmten Dateityp mit gedit zu öffnen. Keine der Standardmethoden zum Korrigieren dieses Problems (Standardanwendungseinstellungen, Thunars offen mit Eigenschaft) spiegelte dies wider, aber gedit war die Standardanwendung.

Ich konnte die Zeile aus ~/.config/mimeapps.list entfernen und jetzt öffnet die richtige Anwendung die Datei.

18
Bryan Leaman

Ich konnte eine Assoziation wie folgt festlegen:

xdg-mime default xnview.desktop image/jpeg

Sie können auch Verknüpfungen entfernen und andere Aktionen ausführen: man xdg-mime

Ich musste Sudo update-desktop-database nicht ausführen.

8
warvariuc

Ich habe diesen Link bezüglich der Standardzuordnung gefunden, er könnte hilfreich sein. https://wiki.archlinux.org/index.php/Default_Applications
für globale Assoziation:

/usr/share/applications/mimeapps.list

pro Nutzerverband:

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

die Syntax lautet wie folgt:

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

Der Abschnitt [Added Associations] wird verwendet, um bevorzugte (Standard-) Anwendungen in abnehmender Präferenz anzugeben. was bedeutet, dass desktopfile1 am meisten bevorzugt ist und desktopfileN am wenigsten bevorzugt ist.
Der Abschnitt [Entfernte Verknüpfungen] wird verwendet, um zuvor vererbte Verknüpfungen explizit zu entfernen.

7
MusuNaji

Erstellen Sie eine Datei truecrypt.desktop in ~/.local/share/applications mit den folgenden Zeilen:

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

bearbeiten Sie dann die Datei ~/.local/share/applications/mimeapps.list und fügen Sie die folgende Zeile hinzu:

application/octet-stream=truecrypt.desktop

Ich habe den MIME-Typ von Truecrypt herausgefunden, indem ich diesen Befehl ausgeführt habe:

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

mimeapps.list Suchpfad

Andere haben diese Datei erwähnt, aber keiner hat genau erklärt, wo sie sich befindet.

Der freedesktop.org-Standard sagt unter https://specifications.freedesktop.org/mime-apps-spec/mime-apps-spec-1.0.html :

Die Suchreihenfolge für diese Datei lautet wie folgt:

$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

die Standardwerte für diese Umgebungsvariablen finden Sie unter 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: keine, angehängt an XDG_DATA_HOME
  • $XDG_CONFIG_DIRS: keine, angehängt an XDG_CONFIG_HOME

Ältere Versionen von Ubuntu können ~/.config möglicherweise nicht überprüfen, versuche also auch ~/.local/share.

Befehle wie:

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

bearbeitet diese Dateien automatisch.

Für alle Benutzer:

/usr/share/applications/defaults.list

Jeder Benutzer hat eine Konfigurationsdatei zum Überschreiben dieser Standardeinstellungen:

~/.config/mimeapps.list

siehe auch https://specifications.freedesktop.org/mime-apps-spec/mime-apps-spec-1.0.1.html für Orte, die zum Überschreiben von Defauts verwendet werden können.

Sie müssen den MIME-Typ der Datei kennen, deren Zuordnung Sie ändern möchten.

Alle Assoziationen können auch in der Kommandozeile geändert werden:

xdg-mime

2
Xoristzatziki

Freedesktop.org (früher X Desktop Group genannt, daher die Abkürzung für "XDG") ist die Gruppe, die derzeit X-Standards wie diesen betreibt ( weitere Informationen bei Wikipedia ).

warvariucs Antwort erwähnt bereits xdg-mime Verwendung wie:

xdg-mime default xnview.desktop image/jpeg

Nachdem ich viel mit Bildeditoren und -betrachtern gespielt hatte, kam ich zu unterschiedlichen Bildbetrachtern für verschiedene Bildtypen mit fast keiner Konsistenz, insbesondere bei den selteneren Bildtypen.

Ich nahm den obigen Befehl und wies ihn jedem der von den Bildbetrachtern gesteuerten MIME-Typen zu und erstellte dann einen neuen image-viewer.desktop, indem ich einen von ihnen klonte (dies ist optional, Sie können lediglich Ihren Favoriten wiederverwenden). Als Nächstes habe ich manuell überprüft, ob keiner der MIME-Typen mit meiner neuen bevorzugten Anwendung nicht kompatibel ist. Schließlich habe ich diese Anwendung als Standard für alle MIME-Typen der anderen Anwendungen festgelegt:

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

Dies untersucht die .desktop -Dateien für jeden der Betrachter ( Ristretto , Geeqie und GThumb in meinem Fall), extrahiert die MIME definition (mit dem Präfix MimeType= und einer durch Semikolons getrennten Liste) entfernt die (zuvor übereinstimmende) Präfixbezeichnung und teilt die Liste in einen Eintrag pro Zeile auf. sort -u entfernt dann die redundanten Leitungen und leitet sie an xdg-mime weiter, um die neuen Standardeinstellungen festzulegen.

(Wenn Sie dies testen möchten, bevor Sie es live ausführen, ändern Sie xargs in xargs echo, und der resultierende Befehl wird gedruckt, anstatt ihn auszuführen.)

Diese Technik sollte für alles funktionieren, was Sie für eine Ziel-App zurückfordern möchten. Sie müssen nicht einmal eine neue .desktop -Datei erstellen (Sie können eine vorhandene verwenden). Ich habe diesen zusätzlichen Schritt ausgeführt, damit ich, wenn ich unweigerlich meine Loyalität zwischen Bildvorschauprogrammen ändere, nur diese eine Datei ändern muss.

1
Adam Katz

Unter Ubuntu 18.04 habe ich folgende Rangfolge gefunden, von der stärksten zur schwächsten:

  1. ~/.local/share/applications/defaults.list
  2. /usr/share/applications/defaults.list
  3. ~/.config/mimeapps.list ("Mit anderer Anwendung öffnen" aktualisiert dies)
  4. ~/.local/share/applications/mimeapps.list
  5. Die erste Übereinstimmung in der mimeinfo.cache -Registrierung kompatibler Anwendungen, die aus den .desktop -Dateien in /usr/share/applications und /usr/local/share/applications generiert und mit neu generiert werden kann. update-desktop-database .
  6. (Nie benutzt) /etc/gnome/defaults.list
1
Jimmy He