UNIX シェル コマンドを使用して、特定のファイル拡張子に対応する優先アプリケーションを検索する

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

質問

これはそうではないかもしれない 厳密に プログラミングについてですが、既製の解決策が見つからない場合は、プログラミング作業になる可能性があります。 UNIX では、特定のファイルタイプに対してユーザーが優先するアプリケーションを決定するためのコマンドライン方法は何ですか?

ここでの私の理想的な解決策は、次の操作を行わなくて済むコマンドです。

okular foo.pdf

そして、設定した優先アプリケーションを操作して、次のようなことを実行できるようにしました。

launch foo.pdf

検索しても答えは見つかりませんでした。また、しばらく Linux を使ってきたものの、好みのアプリケーションを管理する内部構造についてはまったくわからないため、DIY アプローチは機能しません。

役に立ちましたか?

解決

UNIX の場合 それ自体 優先アプリケーションに関する OS レベルの概念がないため、これはユーザーがそのアプリケーションを開くために使用したものになります。

ただし、主要な X デスクトップ環境はすべてそのような概念を定義しているため、その機能を使用する必要があります。

  • gnome-open GNOME では (当然です)
  • exo-open XFCE で [gnome リンクのコメントを参照]
  • xdg-open 多くの環境で動作する可能性があります (KDE で動作すると言われています) [gnome リンクのコメントを参照]
  • 単純に kfmclient exec (または kfmclient4 exec) KDE では (への参照が見つかりませんでした) kde-open として ロブ・Hが提案する, 、そしてそれを試すための KDE システムが手元にありません)

現在、Mac OS X では、 open ファインダー内のファイルをクリックするのと同じように機能するコマンド (つまり、OS に要求します...)


いくつかの修正のおかげで 儚い コメントで。議論はしません mailcap, 、全く理解できず、存在を忘れていたので…。

他のヒント

答えは、あなたが使用してデスクトップ環境により異なります。あなたはOkular言及したので、私はあなたがKDEを使っていると仮定するつもりです。そうしようとします:

kde-open <file>

GNOMEの場合は、同等のがあります:

gnome-open <file>

この自分自身に答えるために、私は私が期待するように動作し、簡単な(bashの)関数を定義しました。

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

のxdg-openが、私が望んでほぼ正確だったが、それは醜いプログラムの警告は上記を解決するよう、シェルの中にすり抜けできます。

おかげで、すべて。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top