LinuxのデスクトップのコマンドラインからNautilusでのWクリックなどと同じようにファイルを開くことが出来るコマンドがxdg-openとgnome-open。結構前からあるコマンドなのでご存じの方には今更なにをだと思いますが、不勉強で知らなかった(か忘れていた)ので忘れないようにメモ。参考にしたのは以下のページ。
- xdg-open — opens a file or URL in the user’s preferred application | Ubuntu Geek
- Ubuntu 8.04でgnome-openの関連付けを変更する - Sickly Life はてな版
- Linux でも open や fiber 的な動作を - リタマス
Mac OSXを使っていて便利なのはTerminalから'open'コマンドでたいていのファイルやディレクトリが開けること。例えば'open .'と打ち込むとカレントディレクトリをFinderが開いてくれる。'open hoge.c'等とするとXCodeで開いてくれる。'open -a Emacs'とやるとApplicationのEmacs.appが起動。'open hoge.dmg'とやるとディスクイメージがマウントされるといった感じ。丁度FinderでファイルをWクリックしたのと同じ動作が行われます。
同じようにUbuntu等のLinuxデスクトップを使用していてファイルやフォルダを開けないものかと思っていたのですが、これを実現するのがgnome-open, xdg-openの両コマンド。
その名の通りgnome-openはgnomeデスクトップ用。xdg-openはデスクトップを認識して適切にファイルを開いてくれるもの。
ターミナルアプリケーションから'xdg-open URL or File'とすることで URLならデフォルトのブラウザが、ファイルなら関連づけに従ってアプリケーションが開いてくれます。例えば'xdg-open hoge.xls'等とするとOpenOfficeが起動するということで。CLIをよく使う方にはかなり便利と思います。
なんだかコマンドがダサいと思われる方は.bashrcでinteractiveか判定した後に
alias open=xdg-open
等としておけばいいかもしれません。