NUNCA manipule directamente ninguno de los archivos de ~/Library/Preferences. Todas las preferencias son gestionadas por un proceso en segundo plano llamado cfprefsd (abreviatura de Core Foundation PREFerences Daemon), que sorbe y almacena en caché los archivos de ~/Library/Preferences. Antes se podía manipular los archivos de preferencias detrás de cfprefsd de la espalda, por así decirlo, pero cfprefsd recientemente se ha vuelto muy agresivo en cuanto a la cantidad de caché.
En lugar de editar uno de estos archivos, pregunte cfprefsd para obtener una copia, editar la copia, y luego enviar el contenido de la copia de vuelta a cfprefsd . Su interfaz para cfprefsd es el valores predeterminados comando de shell.
Por ejemplo, para editar las preferencias del com.apple.sidebarlists dominio:
defaults read com.apple.sidebarlists > ~/Desktop/sidebarlists.txt
... edit sidebarlists.txt to your heart's content
defaults write com.apple.sidebarlist "$(cat ~/Desktop/sidebarlist.txt)"
Tendrás que hacer que Finder sea consciente de los cambios, así que lanza
osascript -e 'tell application "Finder" to quit'
sleep 0.2 # not always necessary
osascript -e 'tell application "Finder" to activate'
Recuerde que debe jugar bien con otros programas. Matar no es agradable, así que no mates nada (especialmente no cfprefsd ) que no es absolutamente necesario matar. No te pongas a jugar con el almacén persistente de otro programa mientras se está ejecutando. En particular, ya que cfprefsd siempre se está ejecutando, NUNCA altere directamente el contenido de ~/Library/Preferences/*.
Si necesitas eliminar un archivo de preferencias, la forma correcta es con:
defaults delete its.domain.name
Dejemos que cfprefsd preocuparse por deshacerse del archivo (o, como suele hacer hoy en día, reescribir un archivo esencialmente vacío sobre él).
El nombre de archivo ~/Desktop/sidbarlist.txt es, por supuesto, sólo un ejemplo. Utilice una extensión .plist en lugar de .txt si lo prefiere. El archivo estará en formato de texto plist de NextStep.
Si prefiere otro formato de lista de propiedades, utilice pllist -convert ...
. O dejar que el valores predeterminados escribirlo como un archivo .plist en un formato de su elección con
defaults write ~/Desktop/sidebarlists "$(defaults read com.apple.sidebarlists)"
... edit the file ...
defaults write com.apple.sidebarlists "$(defaults read ~/Desktop/sidebarlists)"
Pero lo importante es que mantengas tu copia, la que editas o manipulas, fuera de ~/Librería/Preferencias. Deje que valores predeterminados preocuparse por la comunicación con cfprefsd y que cfprefsd preocuparse de manipular ~/Library/Preferences.