MacのopenとLinuxのgnome-open
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、深いなぁ….