plutil -createは、指定したフォーマットで中身が空のplist(property list)ファイルを新規作成する。
空のplistを作成する
-createに続けてフォーマット(xml1/binary1/json)、その後にファイルパスを指定する。xml1、binary1については【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のフォーマットを変換する\第一線のプログラマーの行動原理を学べる!/
