Answers:
免责声明:我的作者~/.osx
,集合defaults write
设置。这些是我用来查找设置的技术。让我知道是否有更好/更容易的方法,我在这里没有提到!
对于大多数非隐藏设置,可以通过以下方法在Terminal.app中找到正确的首选项键:
defaults read > a
# Change the setting
defaults read > b
diff a b
对于隐藏设置,它将变得更加棘手。您可以strings
在任何二进制可执行文件上使用命令行实用程序,然后查看是否有任何结果文本看起来像是首选项键。例如:
strings /System/Library/CoreServices/Finder.app/Contents/MacOS/Finder
这是另一个示例,它将浏览所有.framework
文件/System/Library/Frameworks/
并略微过滤输出:
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
还有一个名为GDB的工具,可用于查找隐藏的首选项。
defaults read;
在这里工作正常。
另一个字符串命令:
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
显示修改了哪些属性列表。您可以使用fseventer实时显示其他文件系统更改。
默认值有一个find子命令:
$ defaults find nsquitalw
Found 1 keys in domain 'Apple Global Domain': {
NSQuitAlwaysKeepsWindows = 1;
}
头文件通常包含首选项键的定义:
grep PreferenceKey -r ~/Code/Source/WebKit/ | grep '\.h:'