私は謙虚なファイルマネージャーを書いており、さまざまなファイルタイプのリストと、Ubuntuがそれらを開くために使用するデフォルトのアプリケーションを探しています。
これまでのところ、gedit
で開く「テキスト」、eog
で開く「イメージ」(gnomeの目)、およびogg123
で開く「オーディオ」を見つけました。ただし、ogg123
がデフォルトのアプリケーションであるかどうかはわかりません。
以下のコードのリストを拡張するために少し助けていただければ幸いです:
function OpenFileWithMagic () {
local FileType
FileType=$(file -i "$DfName/$2" | grep -oP '(?<=: ).*?(?=/)')
logger "bafman - OpenFileWithMagic - FileType: $FileType DfName: - $DfName parm 1: $1 2: $2 3: $3 4: $4"
case $FileType in
text)
# TODO: expand list of file types and associated applications to open them with
if [[ $4 == root ]]; then
gsu gedit $DfName/$2
else
gedit $DfName/$2
fi ;;
image)
eog $DfName/$2 ;;
audio)
ogg123 $DfName/$2 ;;
esac
} ### OpenFileWithMagic ()
export -f OpenFileWithMagic
注:export
は、yad
ダイアログボックスからダブルクリックするとファイルが開かれるためにのみ必要です。また、「魔法の」数字とそれをどのように解釈するかも理解する助けが必要です。おそらく教育リンクですか?
Editこれは コマンドラインからデフォルトのアプリケーションでファイルを開く方法? の重複ではありません:
case
構造内のbashスクリプトからどのように行うかです。rhythembox
が不要なサウンドファイルに使用されることになるでしょう。 ogg123
は、pythonエラーメッセージで新しいウィンドウを開いたり閉じたりせずにサウンドを再生するのに適しています。そこでの答えはxdg-open /bin/mv
を使用し、結果は次のようになります。
gvfs-open: /bin/mv: error opening location: No application is registered as handling this file
上記のbashスクリプトを使用すると、file -i /bin/mv
コマンドの結果は次のようになります。
/bin/mv: application/x-executable; charset=binary
Bashスクリプト内で必要なすべてのファイルタイプの処理を除外した後、残りは重複候補で使用されるxdg-open
に渡すことができます。
コメントへの返信DK Bose で指摘されているように、主要なファイルタイプは/usr/share/mime/types
にあります。ここには、Video
(適切なデフォルトのUbuntuビデオプレーヤーを入手する必要があります)、Application
(実行するのではなく、アプリケーションに関する情報を表示する必要があります)など、考慮すべき追加のタイプがありますおよびMessage
(これを表示する方法がわかりません)。さらに調査が必要な追加のMIMEタイプは、inode
、model
、multipart
、およびx-content
です。
rinzwind 指摘ogg123
はUbuntuのデフォルトのサウンドファイルプレーヤーではありません。サウンドファイルを再生するためにデフォルトでインストールされる適切なUbuntuアプリケーションは、このQ&Aで wjzndrea によって2016年10月5日に回答されたcanberra-gtk-play
です: 文字(または色)を描画できます) Bashファイルリストメニューに追加しますか? 。
最近のデスクトッププログラムのほとんどはfile
を使用しませんが、ファイルタイプには 共有MIME-infoデータベース を、デフォルトアプリケーションには MIMEアプリケーションアソシエーション仕様 を使用します。
Bashでは、 xdg-mime を使用して、ファイルのMIMEタイプを推測し、特定のMIMEタイプのデフォルトアプリケーションを取得できます。
$ xdg-mime query filetype bla.sh
application/x-shellscript
$ xdg-mime query default application/x-shellscript
emacs.desktop
xdg-open を使用すると、デフォルトのアプリケーションでファイルを開くことができるため、実際にMIMEタイプを気にする必要はありません。
$ xdg-open bla.sh