web-dev-qa-db-ja.com

開くファイルの種類とデフォルトのUbuntuアプリケーションのリスト

私は謙虚なファイルマネージャーを書いており、さまざまなファイルタイプのリストと、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タイプは、inodemodelmultipart、およびx-contentです。

rinzwind 指摘ogg123はUbuntuのデフォルトのサウンドファイルプレーヤーではありません。サウンドファイルを再生するためにデフォルトでインストールされる適切なUbuntuアプリケーションは、このQ&Aで wjzndrea によって2016年10月5日に回答されたcanberra-gtk-playです: 文字(または色)を描画できます) Bashファイルリストメニューに追加しますか?

1

最近のデスクトッププログラムのほとんどは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
10
Florian Diesch