Non manipolare MAI direttamente alcun file in ~ / Library / Preferences. Tutte le preferenze sono gestite da un processo in background chiamato cfprefsd (abbreviazione di Core Foundation PREFerences Daemon), che recupera e memorizza nella RAM i file in ~ / Library / Preferences. In passato, spesso si poteva andare avanti con la manipolazione dei file di preferenza dietro la cfprefsd , per così dire, ma cfprefsd recentemente si è rivelato molto aggressivo su quanto memorizza nella cache .
Invece di modificare uno di questi file, chiedi a cfprefsd una copia, modifica la copia, quindi invia il contenuto della copia a cfprefsd . La tua interfaccia per cfprefsd è il comando della shell defaults .
Ad esempio, per modificare le preferenze per il dominio com.apple.sidebarlists :
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)"
Dovrai rendere il Finder consapevole delle modifiche, quindi esegui
osascript -e 'tell application "Finder" to quit'
sleep 0.2 # not always necessary
osascript -e 'tell application "Finder" to activate'
Ricorda di giocare bene con altri programmi. Uccidere non è bello, quindi non uccidere nulla (specialmente non cfprefsd ) che non devi assolutamente uccidere. Non fare jerk con il negozio persistente di un altro programma mentre è in esecuzione. In particolare, dato che cfprefsd è sempre in esecuzione, MAI modificare direttamente i contenuti di ~ / Library / Preferences /*.
Se è necessario eliminare un file delle preferenze, il modo corretto è con:
defaults delete its.domain.name
Lascia che cfprefsd si preoccupi di eliminare il file (o, come è solito fare oggigiorno, riscrivere un file essenzialmente vuoto su di esso).
Il nome file ~ / Desktop / sidbarlist.txt è, ovviamente, solo un esempio. Se preferisci, usa l'estensione .plist invece di .txt. Il file sarà in formato plist testo NextStep.
Se preferisci un altro formato di elenco di proprietà, usa pllist -convert ...
. Oppure lascia che il comando defaults lo scriva come un file .plist in un formato a sua scelta con
defaults write ~/Desktop/sidebarlists "$(defaults read com.apple.sidebarlists)"
... edit the file ...
defaults write com.apple.sidebarlists "$(defaults read ~/Desktop/sidebarlists)"
Ma l'importante è che tu mantenga la tua copia, quella che modifichi o altrimenti manipoli, al di fuori di ~ / Library / Preferences. Lascia che i valori predefiniti si preoccupino di comunicare con cfprefsd e lascia che cfprefsd si preoccupi di manipolare ~ / Library / Preferences.