UNIX シェル コマンドを使用して、特定のファイル拡張子に対応する優先アプリケーションを検索する
-
21-09-2019 - |
質問
これはそうではないかもしれない 厳密に プログラミングについてですが、既製の解決策が見つからない場合は、プログラミング作業になる可能性があります。 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が、私が望んでほぼ正確だったが、それは醜いプログラムの警告は上記を解決するよう、シェルの中にすり抜けできます。
おかげで、すべて。