我在 /private/var/db/dslocal/nodes/default/users 下有一个 plist 文件。我可以使用 plutil 读取 plist 中的值。
plutil -p /private/var/db/dslocal/nodes/default/users/swastibhushandeb.plist
输出摘录:
{
"hint" => [
0 => "abcxyz"
]
"home" => [
0 => "/Users/swastibhushandeb"
"name" => [
0 => "swastibhushandeb"
1 => "[email protected]"
]
"passwd" => [
0 => "********"
]
"picture" => [
0 => "/Library/User Pictures/Animals/Parrot.tif"
]
"realname" => [
0 => "Swasti Bhushan Deb"
]
"record_daemon_version" => [
0 => "48400XX"
]
"uid" => [
0 => "501"
}
使用 bash 从 plist 中选择特定值(例如“name”、“realname”等)的最佳方法是什么。
答案1
您可以使用以下defaults
命令(请注意,文件名中省略了“.plist”):
defaults read /private/var/db/dslocal/nodes/default/users/swastibhushandeb name
或者PlistBuddy
:
/usr/libexec/PlistBuddy -c "print name" /private/var/db/dslocal/nodes/default/users/swastibhushandeb.plist
但由于这实际上是您要读取的用户记录,dscl
因此我建议您使用:
dscl /Search -read /Users/swastibhushandeb name
当然,所有这些都使用不同的输出格式......