ターミナルでファイルの関連付けを変更しますか?


18

端末を介してファイルタイプをアプリケーションに関連付ける方法はありますか?私は〜/ Library / Preferences / com.apple.launchservices.plistがそれを行うかもしれないと思ったし、私も見た:〜/ Library / Preferences / com.apple.LaunchServices.plistへのコマンドラインの変更がすぐに有効にならないのはなぜですか?しかし、私はそれを機能させることができないようです。

誰かがそれを使用して関連付けタイプを変更するときにGUIが何をするかを模倣する方法を探していると思う、それはそこですぐに動作するようです...

回答:


8

~/Library/Preferences/com.apple.LaunchServices.plistXMLに変換した後、テキストエディターで編集できます。

plutil -convert xml1 ~/Library/Preferences/com.apple.LaunchServices.plist

次に、このようなエントリをLSHandlers配列に追加します。

<dict>
  <key>LSHandlerContentType</key>
  <string>com.adobe.pdf</string>
  <key>LSHandlerRoleAll</key>
  <string>net.sourceforge.skim-app.skim</string>
</dict>
<dict>
  <key>LSHandlerContentTag</key>
  <string>mkv</string>
  <key>LSHandlerContentTagClass</key>
  <string>public.filename-extension</string>
  <key>LSHandlerRoleAll</key>
  <string>org.videolan.vlc</string>
</dict>

あなたは使用することができmdls、ファイルの種類など、何かの尿路感染を確認するためにosascript -e 'id of app "AppName"'、アプリケーションのバンドル識別子を参照してください。

com.apple.LaunchServices.plist再起動することで変更を適用できます。ログアウトして再度ログインするだけでは不十分です。


:現在dutiは開発中ではなく、メンテナから「サポートされていない」というラベルが付けられています。このプロジェクトは、構成の更新を除き、2012年以降大きな進展はありません。SourceforgeからGithubに移動しました。この回答は、新しいリンクが含まれるように更新されました。

私もdutiを使用しています。このようなファイル(約100行)を~/.duti次のように保存しました。

org.gnu.Emacs public.plain-text all # .txt, .text, plain text files without an extension
org.gnu.Emacs public.unix-executable all # executable scripts
com.SequentialX.Sequential .jpg all
org.videolan.vlc .mkv all

変更されたduti ~/.dutiときに自動的に実行されるlaunchdエージェントがあります~/.duti

通常.jpg、UTI(などpublic.jpg)の代わりにファイル名拡張子(など)を使用して、ファイルタイプを指定できます。duti拡張機能をUTIに変換します。UTIは他の拡張機能にも適用されます(など.jpeg)。.mkvやなどの一部の拡張機能の.tex場合、UTIは拡張機能を最初に登録したアプリケーションに依存します。

最新バージョンdutiはソースコードのみが含まれていますが、1.5.0にはインストーラーも含まれています。


5

Dutiをご覧ください。

dutiはAndrew Mortensenによって書かれたコマンドラインツールで、Mac OS XでドキュメントタイプとURLスキームのデフォルトアプリケーションを設定するように設計されています。

Mac OS Xのドキュメントタイプは、AppleがUniform Type Identifier(UTI)と呼ぶものによって定義されます。たとえば、HTMLファイルのUTIはpublic.htmlです。Microsoft Word文書は、UTI com.microsoft.word.docで記述されています。AppleはMac OS Xで多くのUTIを提供していますが、UTIがそのドキュメントタイプに固有である限り、開発者は独自に定義できます。

dutiの名前は「UTIのデフォルト」を意味します。


2
必須の提案:brew install dutiインストールに使用duti
Pier Paolo Ramon

1

以下は、トリックを行うdutiのlaunchdエージェントです。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>com.duti.watcher</string>
    <key>ProgramArguments</key>
    <array>
      <string>/usr/local/bin/duti</string>
      <string>/Users/joshgummersall/.duti</string>
    </array>
    <key>UserName</key>
    <string>joshgummersall</string>
    <key>KeepAlive</key>
    <false/>
    <key>WatchPaths</key>
    <array>
      <string>/Users/joshgummersall/.duti</string>
    </array>
  </dict>
</plist>

明らかにjoshgummersall自分のユーザー名に置き換えてください。このファイルを~/Library/LaunchAgents/duti.plistchmmoddから644 に配置して実行しました。

$ launchctl load -F -w ~/Library/LaunchAgents/duti.plist

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.