openはデフォルトでLaunchServicesが判定したアプリケーションでファイルを開くが、-aまたは-bで開くアプリケーションを明示的に指定できる。

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

-aでアプリケーション名を指定する

-a <application>で、アプリケーション名を指定してファイルを開く。

$ open -a "Preview" a.txt

デフォルトではTextEditで開かれる.txtファイルを、Previewで開ける。アプリケーション名の代わりに、.appへのフルパスを指定できる。

$ open -a /Applications/Preview.app a.txt

存在しないアプリケーション名を指定するとエラーになる。

$ open -a "NoSuchApp" a.txt
Unable to find application named 'NoSuchApp'

-bでバンドル識別子を指定する

-b <bundle_identifier>で、アプリケーション名の代わりにバンドル識別子を指定できる。

$ open -b com.apple.TextEdit a.txt

アプリケーション名は日本語化されていたりバージョンによって表記が変わったりする場合があるが、バンドル識別子は変わらないため、スクリプトから確実にアプリケーションを指定したい場合に向いている。バンドル識別子はosascript -e 'id of app "アプリ名"'で確認できる。

$ osascript -e 'id of app "TextEdit"'
com.apple.TextEdit

参考

open command - Open a file, folder or URL