修改*plist文件中的子键

3

我想修改plist文件中的一个子键(即“TB Item Identifiers”):

NSNavPanelExpandedStateForSaveMode = 1;
NSPreferencesContentSize = "{508, 413}";
NSPreferencesSelectedIndex = 6;
"NSToolbar Configuration BrowserWindowToolbarIdentifier" =     {
    "TB Display Mode" = 2;
    "TB Icon Size Mode" = 1;
    "TB Is Shown" = 1;
    "TB Item Identifiers" =         (
        BackForwardToolbarIdentifier,
        HomeToolbarIdentifier,
        InputFieldsToolbarIdentifier
    );
    "TB Size Mode" = 1;
    "TB Visibility Priority Values" =         {
        BackForwardToolbarIdentifier =             (
            999
        );
        InputFieldsToolbarIdentifier =             (
            1000
        );
    };
};

我在一个shell脚本中使用以下命令:

defaults write com.apple.file key keyvalue

每次我想更改“TB项目标识符”,我都要修改整个“NSToolbar Configuration BrowserWindowToolbarIdentifier”。如何直接修改plist子键或子子键?

2个回答

4
使用PlistBuddy
/usr/libexec/PlistBuddy -c "set Key:SubKey1:SubKey2:Subkey3 value" ./Path/To/Your.plist

这看起来也是一个不错的系统管理员工具。我在寻找一种脚本方式来关闭MacOS X 10.7(即狮子)中的appstoreupdateagent。 - Data Scavenger
然而,PlistBuddy 用于处理 plist 文件,而 defaults 命令用于处理 defaults 数据库。值得注意的是,defaults 缓存在磁盘上的 plist 中,这只是一种实现细节。并不能保证缓存中的内容与内存中的内容相同。 - uchuugaka

3
defaults write com.yourcompany.app key -dict-add subkey plistValue

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接