MacのopenとLinuxのgnome-open

7月 18, 2009

Macにはopenというコマンドがあり、ターミナル上から実行すると、指定したアプリケーションが開く。
-aオプションをつければ、フルパスで指定しなくてもコマンドが探して開いてくれる。
また、-aオプションをつけることによって、大文字/小文字の区別が必要なくなるらしい。
以下のコマンドでiTunesが起動する。
(この場合、バックグラウンドでの実行を意味する&を末尾につけなくてもOK)

$ open -a itunes


以下だとcafe_image.jpgファイルを画像ビューワで開いてくれる。
ちなみにファイルを対象とする場合は、-aオプションをつけてもコマンドはサーチ
してくれないようなので、正確なパスとファイル名を指定する必要がある。

$ open Pictures/cafe/cafe_image.jpg

(ユーザのホームディレクトリからの相対パスです)


もちろんカレントディレクトリが/Users/user_name/Pictures/cafe/なら、以下でOK。

$ open cafe_image.jpg


lsコマンドでファイルの一覧確認後、中身を見たいファイルをopenで指定すれば
開くのだから、これは便利!

それから以下を実行すると…

$ ls -l | open -f


突如、カレントディレクトリのlsコマンドの実行結果が出力されたテキストエディタが開く!
(でもこれはテンポラリ領域に存在するだけのものなのか…、このまま保存しようとしても、
できないw)
openコマンド、実は今まで使っていなかったのだけど、なかなか使えるヤツですね〜。

で、これってLinuxでもできる?と思ってやってみたら、openできない。
同じopenでも、Linuxではコマンドではなくシステムコールなのだった・・・

でも、なんか方法があるはずだろう、、、とまた重箱の隅をつついてみる。
ググったところ、Linuxでは似たような機能でgnome-openというコマンドがあることが判明。
確かにwhichしてみたら、/usr/bin/gnome-openとある。し、知らなかった〜!

しかしこっちは、アプリじゃなくてファイルを開くためのコマンドらしいのだ。
引数にファイルを指定すると、そのファイルに関連付けられたアプリケーション
を起動して開く、という動きらしい。

アプリケーションであるGimpを開いてみよう、と試してみたけれど。

# gnome-open /usr/lib/gimp/2.0/plug-ins/script-fu &


と、フルパスで指定しても以下のエラーメッセージが出て来て、駄目だった。

この ’場所’に関連付けられているデフォルトのアクションはありません。


「関連付け」。これはどうもgnome-openのキモらしいのだけど、そんなのを
追求していると夜が明けてしまうので。。

追記:”script-fu”はGimpの拡張機能であった。開こうとしたのは、そのバイナリファイル。
開くワケがない・・・

ファイルを開くのは出来る。以下のように実行したら・・・

# gnome-open /home/user_name/aaa.txt


aaa.txtがテキストエディタで開いた!
Macの場合でも同じなのだが、ターミナルで操作中に何かファイルを開きたいときに、
GUIからマウスでクリックするのが面倒、ってことはよくある。
gnome-open、イイかも…?!

便利な使い方として、ファイルブラウザをターミナルから開く、というのが。

$ gnome-open .

または以下でも。

$ nautilus .


.(ドット)を指定することで、ターミナル上のカレントディレクトリのファイル
ブラウザが開く。Macだと”$ open .” が同様の動きとなる。

ちなみに今回いろいろ調べている際に、Linuxのファイルブラウザのことを
nautilusと呼ぶことを知った・・・

あとGNOMEではなくてKDEでも別のコマンドで実行できる。
こちらに結構詳しく書いてありました。

しかしこのgnome-openは謎のコマンドで、なかなか、裏で複雑な動きをして
いるようなのだ。
manにもないし、いろんなブログで「正式なドキュメントをご存知の方がいたら
教えてください」というコメントが目立つ(Macのopenはmanにあります)。

うぅむ、Linux、深いなぁ….

Posted by Le Blue | Categories: Linux |

No Responses so far | Have Your Say!

Comments are closed.