コマンドラインに「開く」コマンドはありますか?


24

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

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

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

プロチップ

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

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

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


1
で試すことができgnome-open fileます。シンプルにするために追加alias o='gnome-open'しました.bashrc
PAL GD

gnome-openと同様に機能しxdg-openます。
slm

回答:


33

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

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

$ xdg-open tstfile.txt
$

ファイルtstfile.txtは次の場所で開かれgeditます:

                         sedit of gedit

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

$ xdg-open tstfile.odt 
$

ファイルtstfile.odtが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ステップの操作です。最初に、指定されたファイルのMIMEタイプを照会します。xdg-mime query filetype tstfile.txtこれはを返しtext/plainます。次に、これを使用して別のルックアップを実行し、このMIMEタイプに関連付けられているアプリケーションのリストを見つけます。あなたは私が関連付けられている2つのアプリを持っている、上記参照できるようにgeditcalibreのために、.txtファイル。

を使用xdg-mimeして関連付けを変更することもできます。詳細man xdg-mimeを参照してください。


デフォルトのもの以外の他の種類のプログラムを表示する方法はありますか?たとえば、okularPDFを表示するためにインストールしたばかりですが、上記の例evinceは.pdfファイルで実行した場合にのみ表示されます。
modulitos

1
@Lucas-はい、私が示した例は、上記の特定のファイルタイプに関連付けられているアプリケーションを示しています。例えば タイプのファイルは.txt、たとえばgeditや口径に関連付けられています。
slm

.desktopリストしたいプログラムのファイルが必要ですか?たとえば、.pdfファイルでスクリプトをevince.desktop実行するとokular、同様に実行できても、が返されます。
modulitos

@Lucas-これは、おそらく元のQから離れて曲がりくねっているので、おそらく新しいQとしてお勧めします。
slm

5

主にコマンドラインで作業する場合は、rangervifmなどのcursesベースのファイルマネージャーを見ることができます。どちらもファイルタイプのデフォルトのアクションを定義できます。

たとえば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定義されたアクションのいずれかを持つ任意のファイルにカーソルwhithすることは、関連するアプリケーションによって開かれ表示されます。.htmlファイルの場合にわかるように、アプリケーションだけでなくスクリプトもトリガーできます。


5

並べ替えますが、結果としてデフォルトのアプリケーションが変更されます。他のどのオペレーティングシステムで動作するかはわかりませんが、以下の手順はUbuntu 12.04-Desktop X86-64で機能します。便利なPDFファイルがなかったため、.zipアーカイブでテストしました。

一般的な手順

ステップ1

ターミナルタイプ:

$ mimeopen -d /home/username/example.zip
スクリーンショット#1 = https://copy.com/qfWSZaZ4FzlA

    SS#1

ステップ2

目的#のアプリケーションのを入力し、を押してリストから選択しますenter。ファイルは、選択したアプリケーションですぐに開きます。

スクリーンショット#2 = https://copy.com/um6Rf7zRdceT

    SS#2

スクリーンショット#3 = https://copy.com/ytwKCqR6nv8i

    SS#3

ノート

注#1

これにより、デフォルトのアプリケーションが選択したものに変更されるため、そのファイルタイプを開くたびに、リストから最後に選択したアプリケーションで開くようになります。


スクリーンショット3のURLにハッシュ記号(#)を挿入するつもりでしたか?
トリシス14

@trysis最大2つのURL制限をバイパスするために使用しました。
私を削除してください

ああ、理にかなっています。それでも変に見えます。
トリシス14

Aをクリーンアップし、3番目のURLを追加しました。
slm

2

使用している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.

...

また、openコマンドは最初にNextStepに登場し、OS Xに継承されたため、他の多かれ少なかれOpenStepベースのプラットフォーム(AfterStep、LiteStepなど)で何らかの形式で使用できる場合があります。
イオノクラストブリガム14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.