2010-03-01 5 views
2

Je suis souhaite modifier une sous-clé dans un fichier plist (ie « TB article Identifiants »):Modifier clé sous dans les fichiers * plist

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 
     ); 
    }; 
}; 

J'utilise la commande suivante dans un script shell :

defaults write com.apple.file key keyvalue 

donc, chaque fois que je veux changer "TB article Identifiers", je modifier l'ensemble du "NSToolbar Configuration BrowserWindowToolbarIdentifier". Comment modifier directement une sous-clé ou une sous-clé?

Répondre

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

Utilisez le PlistBuddy

/usr/libexec/PlistBuddy -c "set clé: SubKey1: SubKey2: valeur Subkey3" ./Path/To/Your.plist

+0

Cela ressemble à une bonne outil sysadmin, aussi. Je cherchais un moyen de désactiver script appstoreupdateagent dans MacOS X 10.7, a.k.a. Lion. –

+0

Cependant, PlistBuddy est pour les plistes et la commande defaults est pour la base de données par défaut. C'est un détail d'implémentation que les valeurs par défaut sont mises en cache sur le disque en tant que plists. Pas garanti (et pas la même chose que ce qui est en mémoire) – uchuugaka

Questions connexes