Macでターミナルからアプリケーションを立ち上げる
Macはターミナルをメインで使っているんだけどたまにFinderを開きたい事があったりTextEditでファイルを見たい時があって。
Windowsだとstartコマンドでファイルやフォルダを開いたりするところなんだけど、Macだとどうやってやるんだろう。
openコマンドでやるらしいです。なんだやっぱあるんじゃん。
っていうかこれマニュアルのセクション1だけどBSD標準なの?
まあ、なんでも、いいですけれど。
% open test.txt
とやると標準のテキストエディタでtest.txtが開きますし、
% open .
とかやるとカレントディレクトリがFinderで開きます。
だいたいこれでいいんだけど、でもファイル形式が判別できないファイルも多いし、関連付けとは関係なくアプリケーションを指定してファイルを開きたいことも結構ある。
なのでopenはアプリケーション指定もできて、
% open -a TextEdit .zshrc
ってやると".zshrc"をTextEditで開くことができるし、
% open -a TextEdit
ってやると空のTextEditが立ち上がる。
というかそもそもアプリケーションもコマンドで立ち上げたいよねぇ。Spotlightなどに頼らずとも。なんでそれできないんだろう。
まあできなければ作りましょう。シェルスクリプトで書くの面倒くさかったのでRubyで。
/Applicationsの直下にあるXXX.appの全部にaliasを貼ります。シェルで補完してほしいからaliasがいい。スペースはややこしいから詰めた。
bin/macaliases.rb
#!/usr/bin/ruby Dir.open("/Applications").select {|a| a =~ /.*¥.app$/ }.each {|a| print "alias #{a.tr(".app", "").delete(" ")}='open -a ¥"#{a}¥"'", $/ }
これを.zshrcの中でこういう感じで
ruby ~/bin/macaliases.rb > ~/.aliases source ~/.aliases
これでターミナルがもう少し便利になった。ような気がする。ますます袋小路に迷い込んでるだけな気もする。