Wie öffne ich eine Datei mit dem Standardprogramm über die Befehlszeile?

10

Wenn ich in einem GUI-Datei-Explorer auf eine Datei klicke, wird sie mit einem Standardprogramm geöffnet. Dies ist nützlich für Dateien, die ich nicht über die Befehlszeile öffnen kann.

Gibt es eine Möglichkeit, eine Datei mit dem Standardprogramm stattdessen über die Befehlszeile zu öffnen?

Gibt es alternativ eine Möglichkeit, bei einer Dateierweiterung einen Befehl zum Öffnen zu bestimmen?

Gradient
quelle

Antworten:

15

Gibt es eine Möglichkeit, eine Datei mit dem Standardprogramm stattdessen über die Befehlszeile zu öffnen?

Dies ist ein Job für xdg-open:

xdg-open öffnet eine Datei oder URL in der vom Benutzer bevorzugten Anwendung. Wenn eine URL angegeben wird, wird die URL im bevorzugten Webbrowser des Benutzers geöffnet. Wenn eine Datei bereitgestellt wird, wird die Datei in der bevorzugten Anwendung für Dateien dieses Typs geöffnet. xdg-open unterstützt Datei-, FTP-, http- und https-URLs.

  • Syntax zum Öffnen einer Datei mit ihrer Standardanwendung:

    xdg-open {file}
    

xdg-open ist in Ubuntu vorinstalliert.

Gibt es alternativ eine Möglichkeit, bei einer Dateierweiterung einen Befehl zum Öffnen zu bestimmen?

Durch die Erweiterung, nein. Die Standardanwendung wird basierend auf dem MIME-Typ und nicht auf der Erweiterung ausgewählt. Linux hat keine "Erweiterungen".

Für eine bestimmte Datei können Sie xdg-mimesowohl den MIME-Typ der Datei als auch die damit verbundene Standardanwendung bestimmen:

  • Syntax zum Anzeigen des MIME-Typs einer Datei:

    xdg-mime query filetype {file}
    
  • Syntax zum Anzeigen der Standardanwendung des MIME-Typs:

    xdg-mime query default {mimetype}
    
  • Syntax zum Anzeigen der Standardanwendung einer Datei:

    xdg-mime query default "$(xdg-mime query filetype {file})"
    

Als (hackige) Problemumgehung können Sie den Befehl verwenden

xdg-mime query default \
    `xdg-mime query filetype "$(find ~ / -iname '*.png' -print -quit)"`

um die Standardanwendung für z. B. PNG-Bilder anzuzeigen.

Dies funktioniert genau dann, wenn Sie ein PNG-Bild auf Ihrem Computer haben und die erste gefundene Datei, die mit endet, .pngein gültiges PNG-Bild ist.

Dennis
quelle
Genau das, wonach ich gesucht habe! Wissen Sie, ob xdg-open den Befehl zum Öffnen von beispielsweise PNG-Dateien erkennen kann?
Gradient
Ich habe meine Antwort aktualisiert.
Dennis