Risposte:
Disclaimer: sono l'autore di ~/.osx
una raccolta di defaults write
impostazioni . Queste sono le tecniche che utilizzo per trovare le impostazioni. Fammi sapere se esiste un metodo migliore / più semplice che non ho menzionato qui!
Per la maggior parte delle impostazioni non nascoste, ecco come trovare le chiavi delle preferenze corrette in Terminal.app:
defaults read > a
# Change the setting
defaults read > b
diff a b
Per le impostazioni nascoste, diventa più complicato. È possibile utilizzare l' strings
utilità della riga di comando su qualsiasi eseguibile binario e vedere se il testo risultante sembra una chiave di preferenza. Per esempio:
strings /System/Library/CoreServices/Finder.app/Contents/MacOS/Finder
Ecco un altro esempio che esaminerà tutti i .framework
file /System/Library/Frameworks/
e filtrerà un po 'l'output:
strings /System/Library/Frameworks/*.framework/Versions/Current/* /System/Library/Frameworks/*/Frameworks/*/Versions/Current/* 2> /dev/null | grep -E '^[a-zA-Z0-9_.-]{10,80}$' | sort | uniq
C'è anche uno strumento chiamato GDB che può essere utilizzato per trovare preferenze nascoste.
defaults read;
qui funziona perfettamente.
Un altro comando di stringhe:
for f in $(mdfind kMDItemContentType==public.unix-executable -onlyin /System/Library/); do strings $f 2> /dev/null | grep -E '^[[:alnum:]_.-]{10,80}$' | grep ^Apple | sort -u | sed "s/^/${f##*/} /g"; done
sudo opensnoop -n cfprefsd
mostra quali elenchi di proprietà sono stati modificati. È possibile utilizzare fseventer per visualizzare altre modifiche al file system in tempo reale.
il default ha un sottocomando find:
$ defaults find nsquitalw
Found 1 keys in domain 'Apple Global Domain': {
NSQuitAlwaysKeepsWindows = 1;
}
I file di intestazione contengono spesso definizioni per le chiavi delle preferenze:
grep PreferenceKey -r ~/Code/Source/WebKit/ | grep '\.h:'
Quello che ho assunto dalla tua domanda è che vuoi esplorare le modifiche / impostazioni di un'applicazione. Puoi leggere le preferenze di un'app con questo comando banale
defaults read NSGlobalDomain
o
defaults read com.google.Chrome
per leggere le preferenze scrivibili di Chrome dai valori predefiniti, scrivere il comando richiesto.