Finding the preferred application for a given file extension via unix shell commands

前端 未结 3 761
再見小時候
再見小時候 2021-01-15 14:43

this may not be strictly about programming, but if I find no ready-made solution it may become a programming task: On UNIX, what is a command-line method f

相关标签:
3条回答
  • 2021-01-15 14:51

    On unix per se that would be the one the user used to open it, because there is no OS level notion of a preferred application.

    However the major X desktop environment all define such a notion, and then you have to use their facilities:

    • gnome-open in GNOME (duh)
    • exo-open in XFCE [see the comments in the gnome link]
    • xdg-open may work in many environments (reputedly works in KDE) [see the comments in the gnome link]
    • just plain kfmclient exec (or kfmclient4 exec) in KDE (I haven't been able to find a reference to kde-open as Rob H suggests, and don't have a KDE system at hand to try it)

    Now Mac OS X provides the open command which works like clicking the file in the finder (which is to say, it asks the OS...)


    Several corrections thanks to ephemient in the comments. I won't discuss mailcap, because I never understood it and had forgotten it existed...

    0 讨论(0)
  • 2021-01-15 15:06

    The answer differs depending on the desktop environment your using. Since you mentioned Okular, I'm going to assume you're using KDE. So try:

    kde-open <file>
    

    For GNOME, there is the equivalent:

    gnome-open <file>
    
    0 讨论(0)
  • 2021-01-15 15:06

    To answer this myself, I've defined a simple (bash) function that works in the way I expect:

    function show { 
        xdg-open $1 &> NUL
        }
    

    xdg-open was almost exactly what I wanted, but it lets ugly program warnings slip through into the shell, which the above seems to fix.

    Thanks all.

    0 讨论(0)
提交回复
热议问题