-g-jは、どちらもアプリケーションを起動してもフォーカスを奪わないオプションだが、ウィンドウの見え方が異なる。

参考: 【open】コマンドでファイル・ディレクトリを開く

-gでフォアグラウンドに来ないようにする

-gは、アプリケーションを起動するがフォーカスを現在のアプリケーションから移さない。

$ open -g -a Calculator

Calculatorは起動してウィンドウも表示されるが、フォアグラウンドには来ない。System Eventsで確認すると次のようになる。

$ osascript -e 'tell application "System Events" to get visible of process "Calculator"'
true

visibletrueのままで、ウィンドウ自体は表示されている。

-jでアプリを隠した状態で起動する

-jは、アプリケーションを起動した直後から隠す(command + Hを押した状態と同等)。

$ open -j -a Calculator
$ osascript -e 'tell application "System Events" to get visible of process "Calculator"'
false

-jではvisiblefalseになり、Dockにはアイコンが表示されるがウィンドウは非表示のままになる。

使い分け

オプションフォーカスウィンドウの可視性
-g奪わない表示される
-j奪わない非表示

作業の妨げにならないようバックグラウンドで準備だけさせたいアプリには-j、起動はさせたいが操作は後回しにしたい場合は-gが向いている。

参考

open command - Open a file, folder or URL