plutil -createは、指定したフォーマットで中身が空のplist(property list)ファイルを新規作成する。

空のplistを作成する

-createに続けてフォーマット(xml1/binary1/json)、その後にファイルパスを指定する。xml1binary1については【plutil】plistのxml1形式とbinary1形式の違い を参照。

$ plutil -create xml1 empty.plist
$ cat empty.plist
<?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>

作成される中身は空の辞書(<dict/>)である。jsonを指定すると{}binary1を指定するとバイナリ形式の空辞書ファイルになる。

$ plutil -create json empty.json
$ cat empty.json
{}

作成した空のplistへ、-insertで必要なキーを追加していくことで新規のplistファイルを組み立てられる。

既存ファイルを指定すると確認なしで上書きされる

-createに既に存在するファイルパスを指定すると、確認メッセージなしでそのファイルの中身を空の状態で上書きする。

$ cat sample.plist
<?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>
	<key>Name</key>
	<string>Sample</string>
</dict>
</plist>
$ plutil -create xml1 sample.plist
$ cat sample.plist
<?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>

既存のデータを含むplistファイルに対して誤って-createを実行すると、中身が空の状態に戻ってしまい元に戻せない。ファイル名を指定する際はタイプミスに注意し、必要であれば事前にバックアップを取ってから実行する。

参考

【plutil】-convertでplistのフォーマットを変換する