通过 osx-terminal 更改 plist dic/string

change plist dic/string via osx-terminal

我正在尝试使用 os x 板载工具(通过终端)更改字典 plist 文件中的两个 sting 键,但我遇到了问题。在中断 10 年后,我刚刚切换回 os x,所以我有点挣扎。

plist data

% plutil -p "/Users/username/Library/Preferences/com.Adobe.Common 15.0.plist"                                                          
    {
      "Media Cache" => {
        "DatabasePath" => "/Users/path/somewhere/one"
        "FolderPath" => "/Users/path/somewhere/two"
      }
    }

我尝试了几个默认写入的命令,plutil 和 PlistBuddy,但我无法将值更改为其他任何值。

% defaults write "/Users/username/Library/Preferences/com.Adobe.Common\ 15.0.plist" "Media Cache" -array-add '{DatabasePath = (test);}'

有人可以帮我解决这个问题吗?空白空间并不完美,但我必须处理它们...

最好的, 本

您可以使用 plutil 分 3 步完成

  1. 转换为人类可读的形式:
plutil -convert json -r ~/Library/Preferences/com.Adobe.Common\ 15.0.plist -o ~/my.plist.json
  1. 在文本编辑器中编辑my.plist.json

  2. 转换回二进制 plist:

plutil -convert binary1 ~/my.plist.json -o ~/Library/Preferences/com.Adobe.Common\ 15.0.plist

或者,您可以按照此处所述尝试 PlistBuddyhttps://apple.stackexchange.com/questions/282732/how-do-i-replace-a-value-in-an-plist-array-using-plutil

使用 defaults 您可以这样更改或设置您的密钥

defaults write ~/Library/Preferences/com.Adobe.Common\ 15.0.plist "Media Cache" -dict DatabasePath "/Users/path/somewhere/one" FolderPath "/Users/path/somewhere/two"

来自男人

 -dict       Allows the user to add a dictionary to the defaults database
             for a domain.  Keys and values are specified in order:

                   defaults write somedomain preferenceKey -dict key1 value1 key2 value2