Trouver l'application préférée pour une extension de fichier donné via des commandes de shell unix

StackOverflow https://stackoverflow.com/questions/1949531

Question

ce ne peut pas être strictement sur la programmation, mais si je ne trouve pas de solution toute faite, il peut devenir une tâche de programmation: Sous UNIX, ce qui est une méthode de ligne de commande pour déterminer la application préférée par l'utilisateur pour un type de fichier donné?

Ma solution idéale serait ici une commande qui m'a arrêté d'avoir à faire ce qui suit:

okular foo.pdf

Et m'a permis de faire quelque chose comme ça, travailler avec mes applications préférées ensemble:

launch foo.pdf

J'ai trouvé aucune réponse en effectuant une recherche et une approche DIY ne fonctionnerait pas aussi, alors que je me sers de Linux pendant un certain temps, je n'ai aucune idée des éléments internes qui gèrent mes applications préférées.

Était-ce utile?

La solution

unix en soi qui serait celui que l'utilisateur utilisé pour l'ouvrir, parce qu'il n'y a pas de notion de niveau système d'exploitation d'une application préférée.

Cependant le principal environnement de bureau X tous définir une telle notion, et vous devez utiliser leurs installations:

  • gnome-open dans GNOME (duh)
  • exo-open Xfce [voir les commentaires dans le lien gnome]
  • xdg-open peut fonctionner dans de nombreux environnements (fonctionne dans KDE réputé) [voir les commentaires dans le lien gnome]
  • juste kfmclient exec plaine (ou kfmclient4 exec) dans KDE (je ne l'ai pas été en mesure de trouver une référence à kde-open comme Rob H suggère , et ne dispose pas d'un système KDE à portée de main pour essayer)

Mac OS X fournit la commande open qui fonctionne comme cliquant sur le fichier dans le Finder (ce qui veut dire, il demande à l'OS ...)


Plusieurs corrections grâce à ephemient dans les commentaires. Je ne parlerai pas mailcap, parce que je ne comprenais pas et avais oublié qu'il existait ...

Autres conseils

La réponse varie en fonction de l'environnement de bureau à votre usage. Puisque vous avez mentionné Okular, je vais supposer que vous utilisez KDE. Donc, essayez:

kde-open <file>

Pour GNOME, il est l'équivalent:

gnome-open <file>

Pour répondre à moi-même, je l'ai défini une fonction simple (bash) qui fonctionne de la façon dont je pense:

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

xdg ouverte était presque exactement ce que je voulais, mais il laisse les avertissements du programme laid faufilent dans la coquille, ce qui semble le ci-dessus pour corriger.

Merci à tous.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top