/usr/bin/open コマンドの –args オプション


Mac OS X でターミナルアプリケーションを使っているときに,しばしば使うのが /usr/bin/open コマンドです.Windows の Cygwin でいえば,cygstart コマンドに似ています.

open my_paper.pdf

my_paper.pdf をデフォルトの PDF 表示ソフトで開く.

open http://www.titech.ac.jp

東工大のウェブページをデフォルトのウェブブラウザで開く

という風に,結構,便利なんです.

何年も使ってきた open コマンドなんですが –args オプションがあることに今日に今日まで気づいていませんでした.

これは「以後の引数を main 関数の argv に渡す」という意味だそうです.-a オプションを組み合わせると便利です.たとえば,以下のようにすれば,既に Chrome が起動している状態で別の Chrome アプリケーションを起動することができます.

open -n -a "Google Chrome" --args 
    --user-data-dir="$HOME/Library/Application Support/Chrome_Profile_2"

今まではどうやっていたかというと,以下のような感じでした.

"Applications/Google/Google Chrome.app/Contents/MacOS/Google Chrome" 
    --user-data-dir="$HOME/Library/Application Support/Chrome_Profile_2"

Contents/Info.plist の内容を無視するので,エラーが出たり誤動作もあったりで今ひとつだったんです.小さな悩みから一つ解放されました.

ところで,学生のY君が -a オプションは便利だけど,どこにインストールしたアプリケーションが起動するのか分らないから不安だと言ってました.確かに...どうすればいいんだろう?