前言
自从OS X 10.11和更新版macOS 10.12操作系统发布以来,plutil命令的功能也随之有了增强,使我们可以除了使用defaults和PlistBuddy命令之外,又多了一个有力的操作工具。
最早plutil命令单单用来对Plist文件进行语法验证和格式转换,没有太多的用途。现在它除了部分功能,如显示部分不如defaults和PlistBuddy灵活外,对于Plist的写操作有了突出的改进,比defaults要简单,与PlistBuddy不相上下。
下面就介绍下它的具体功能。
介绍
Plist文件是由一对一对的“键”和“值”组成的,键(Key)是后面值(Value)的名称,值可能是简单的数值或字符串,也可能是复杂的数据,这在后面具体说。
测试环境
首先,为了方便,我们现在当前用户目录下面建立一个空目录:~/plutil_temp,然后在Termianl中转到该目录为当前目录,后面的测试我们都在该目录下进行。
mkdir -p ~/plutil_temp
cd ~/plutil_temp
创建空Plist文件
由于plutil命令还不支持创建一个空的Plist文件,我们可以用下面命令创建一个空的文件:
echo '<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict/></plist>' > example.plist
注意上面的命令是一行命令,不分行。
或者使用其他命令创建带有初始值的Plist文件,比如:
/usr/libexec/plistbuddy -c Set: example1.plist
虽然它会显示错误信息,但是依然可以成功创建一个空的原始Plist文件。
也可以尝试使用defaults命令创建一个,这里不再赘述。
在线帮助
先来显示一下它的在线帮助:
plutil -h
先仔细看一下它的在线帮助
验证Plist文件格式
现在让我们来验证一下我们前面建立的空Plist文件格式是否正确:
plutil -lint example.plist
如果文件格式没问题,会在stdout中显示OK,同时返回值为0
显示文件内容
这个也很简单,使用-p命令:
plutil -p example.plist
显示结果:
{
}
请记住它的输出格式,这种格式叫做json,其实plutil只支持json格式输出的。
不妨试试,用诸如cat命令来显示我们的示例文件,它应该是XML格式的文本文件: