Wie erhält man programmgesteuert ein Programm, das einer bestimmten Dateierweiterung zugeordnet ist?

Wie erhält man programmgesteuert ein Programm, das einer bestimmten Dateierweiterung zugeordnet ist?

Wie kann ich ohne manuelle GUI-Verwendung überprüfen, was beispielsweise eine Datei mit einer bestimmten Dateierweiterung öffnet .rb?

Kein Duplikat vonwie kann ich die Dateizuordnung global ändern?wie bei mir geht es um das programmgesteuerte Lesen, nicht um Änderungen in irgendeiner Weise, auch manuell über die GUI (obwohlhttps://askubuntu.com/a/289339/349903Hinweise, dass das Parsen einiger Konfigurationsdateien eine Antwort liefern könnte)

Um das XY - Problem zu vermeiden: Ich habe ein Systeminstallationsskript, das einwandfrei funktioniert, außer dass Okular mit .rb, und anderen Textdateien verknüpft ist, anstatt mit dem Texteditor. Ich möchte das Installationsskript erneut ausführen und nach jedem Schritt protokollieren, was jetzt bestimmte Dateierweiterungen öffnet. Ich hoffe, dass ich dadurch beheben kann, was schief läuft..py.txt

Antwort1

Um die obigen Kommentare zusammenzufassen: Die Lösung dieses Problems besteht in einem zweistufigen Prozess:

Bestimmen Sie zunächst den MIME-Typ der Datei:

MIMETYPE=$(xdg-mime query filetype "<your-file-here>")

Rufen Sie dann die mit diesem Typ verknüpfte Standardanwendung ab:

xdg-mime query default "$MIMETYPE"

Der MIME-Typ könnte also seintext/x-pythonzum Beispiel und die Anwendung wäregedit.desktopauf meinem System.

Sie können es auch in einer Zeile zusammenfassen:

xdg-mime query default "$(xdg-mime query filetype '<your-file-here>')"

verwandte Informationen