web-dev-qa-db-ja.com

コマンドラインに「プログラムから開く」コマンドはありますか?

コマンドラインには、ファイルの種類に基づいて、特定のファイルを開くために使用するプログラムの推奨リストを取得する方法がありますか?たとえば、.pdfファイルには、プログラムEvinceおよびopen with...を使用したDocument Viewer推奨事項があります。

ほとんどの場合コマンドラインを使用しますが、特定の種類のファイルを開くために使用するプログラムの名前を忘れることがあります。

ところで、私はUbuntu 13.10を使用しています。

プロチップ

以下の@slmの選択された回答のおかげで、openwith.shというファイルに次のbashスクリプトを作成しました。

xdg-mime query default $(xdg-mime query filetype $1)

エイリアスとして追加するか、openwithコマンドとして直接実行します。

24
modulitos

「で開く...」として機能するコマンドは今まで見たことはありませんが、コマンドxdg-open <file>を使用して、関連付けられているアプリケーションで特定の<file>を開くことができます。特定のタイプのファイル。

テキストファイルを開く:

$ xdg-open tstfile.txt
$

結果として、ファイルtstfile.txtgeditで開かれます。

ss of gedit

LibreOffice Writerドキュメントを開く:

$ xdg-open tstfile.odt 
$

その結果、ファイルtstfile.odtがWriterで開かれます。

ss of writer

どのアプリが使用されますか?

xdg-mimeを使用してシステムにクエリを実行し、特定のファイルタイプに関連付けられているアプリケーションを見つけることができます。

$ xdg-mime query default $(xdg-mime query filetype tstfile.txt)
gedit.desktop calibre-ebook-viewer.desktop

$ xdg-mime query default $(xdg-mime query filetype tstfile.odt)
libreoffice-writer.desktop calibre-ebook-viewer.desktop

これは2ステップの操作です。最初に、指定されたファイルxdg-mime query filetype tstfile.txtのMIMEタイプを照会しています。これにより、text/plainが返されます。次に、これを使用して別の検索を実行し、このMIMEタイプに関連付けられているアプリケーションのリストを見つけます。上記のように、.txtファイル用に2つのアプリgeditcalibreが関連付けられています。

xdg-mimeを使用して、関連付けを変更することもできます。詳細については、man xdg-mimeをご覧ください。

33
slm

ほとんどコマンドラインで作業している場合は、cursベースのファイルマネージャー( ranger または vifm など)を確認できます。どちらでも、ファイルタイプのデフォルトアクションを定義できます。

たとえばvifmでは、~/.vifm/vifmrcで次のように関連付けを定義できます。

" Images
filetype *.jpg,*.jpeg,*.gif,*.tif,*.png,*.bmp sxiv 

" Media
filetype *.flv,*.avi,*.mp4,*.mpeg,*.mpg,*.mov,*.ogg,*.ogv,*.mkv mpv 

" Web
filetype *.html,*.htm,*.shtml /home/jason/Scripts/vimprobtab.sh 

" PDF
filetype *.pdf apvlv

ヒッティング Enter 一方、定義されたアクションの1つを含むファイル上のカーソルには、関連するアプリケーションによって開かれたファイルが表示されます。 .htmlファイルの場合に見られるように、スクリプトだけでなくアプリケーションもトリガーできます。

5
jasonwryan

使用しているUnixの種類によって異なると思います。 OS Xでは、openコマンドを使用できます。

OPEN(1)                   BSD General Commands Manual                  OPEN(1)

NAME
     open -- open files and directories

SYNOPSIS
     open [-e] [-t] [-f] [-F] [-W] [-R] [-n] [-g] [-h] [-b bundle_identifier]
          [-a application] file ... [--args arg1 ...]

DESCRIPTION
     The open command opens a file (or a directory or URL), just as if you had
     double-clicked the file's icon. If no application name is specified, the
     default application as determined via LaunchServices is used to open the
     specified files.

     If the file is in the form of a URL, the file will be opened as a URL.

...
2