duti とは?
duti
(Developer's Default Uniform Type Identifier) は、Mac のデフォルトアプリケーションをターミナルから設定するためのコマンドラインツールです。特定の拡張子に対して、開くデフォルトアプリケーションを設定できます。
インストール
brew install duti
拡張子の関連付けを調べる
特定の拡張子がどの UTI(Uniform Type Identifier)に関連付けられているかを調べるには、以下のコマンドを使用します。
duti -x .json
このコマンドを実行すると、.json
ファイルを開くデフォルトのアプリケーションのバンドルIDが表示されます。
ドットファイル(例: .gitignore
)の UTI を調べる
mdls -name kMDItemContentType .gitignore
このコマンドを実行すると、.gitignore
ファイルのUTI(Uniform Type Identifier)が表示されます。
ファイルの関連付けを変更する
特定のファイルを Sublime Text 4 で開くように設定するには、以下のコマンドを使用します。
ファイルを単一で開く場合は、Sublime Text が便利でお気に入りです。
duti -s com.sublimetext.4 public.plain-text all
duti -s com.sublimetext.4 public.data all
拡張子を指定して設定する場合:
duti -s com.sublimetext.4 .css all &&
duti -s com.sublimetext.4 .csv all &&
duti -s com.sublimetext.4 .d.ts all &&
duti -s com.sublimetext.4 .env all &&
duti -s com.sublimetext.4 .ini all &&
duti -s com.sublimetext.4 .js all &&
duti -s com.sublimetext.4 .json all &&
duti -s com.sublimetext.4 .jsonc all &&
duti -s com.sublimetext.4 .lock all &&
duti -s com.sublimetext.4 .map all &&
duti -s com.sublimetext.4 .md all &&
duti -s com.sublimetext.4 .mjs all &&
duti -s com.sublimetext.4 .php all &&
duti -s com.sublimetext.4 .scss all &&
duti -s com.sublimetext.4 .sql all &&
duti -s com.sublimetext.4 .test.js all &&
duti -s com.sublimetext.4 .test.ts all &&
duti -s com.sublimetext.4 .ts all &&
duti -s com.sublimetext.4 .tsx all &&
duti -s com.sublimetext.4 .txt all &&
duti -s com.sublimetext.4 .xml all &&
duti -s com.sublimetext.4 .yaml all
.html
の関連付け設定が失敗する問題
以下のコマンドで .html
を Sublime Text 4 に関連付けようとすると、エラーが発生することがあります。
duti -s com.sublimetext.4 .html all
エラーメッセージ:
failed to set com.sublimetext.4 as handler for public.html (error -54)
sudo
を付けても解決しない場合、システムの保護機能によって public.html
が特定のアプリケーション(通常は Safari や Chrome)に固定されている可能性があります。
回避策
.html
ファイルを Sublime Text 4 で開く場合は、手動で Finder から設定することを検討してください。
-
.html
ファイルを右クリック - 情報を見る (Get Info) を選択
- このアプリケーションで開く の項目を Sublime Text に変更
- すべてを変更 ボタンをクリック
これで .html
ファイルを Sublime Text で開くように設定できます。
まとめ
-
duti -x .ext
で拡張子の関連付けを調査 -
mdls -name kMDItemContentType ファイル名
で UTI を調査 -
duti -s <バンドルID> <UTI> all
でファイルのデフォルトアプリケーションを設定 -
.html
の関連付け変更は Finder から手動設定するのが安全
duti
を活用すれば、ターミナルから効率的にファイルの関連付けを管理できます。