plutil-lintオプションは、plist(property list)ファイルの構文をチェックする。オプションを何も指定せずplutilを実行した場合のデフォルト動作でもある。

構文が正しいファイルを確認する

$ plutil -lint sample.plist
sample.plist: OK

オプションを省略しても同じ結果になる。

$ plutil sample.plist
sample.plist: OK

構文エラーのあるファイルを確認する

閉じタグが対応していないなど、XMLとして不正なplistファイルを指定すると、エラー内容と該当行を含むメッセージを表示し、終了コード1で終了する。

$ plutil -lint broken.plist
broken.plist: (Close tag on line 7 does not match open tag string)
$ echo $?
1

複数ファイルをまとめてチェックする

引数に複数のファイルを指定すると、それぞれの結果を1行ずつ表示する。一部のファイルでエラーがあっても、残りのファイルのチェックは中断されず最後まで実行される。

$ plutil -lint sample.plist broken.plist
sample.plist: OK
broken.plist: (Close tag on line 7 does not match open tag string)

終了コードは、指定したファイルのいずれか1つでもエラーがあれば1になる。CI等で大量のplistファイルを一括チェックする際に使える。

-sで成功時の出力を抑制する

-sを併用すると、チェックに成功した場合は何も出力しない。

$ plutil -lint -s sample.plist
$ echo $?
0

正常なファイルの出力を減らし、エラーのあるファイルだけをログに残す運用で有用である。

参考

【plutil】plistファイルの中身を人間可読な形式で表示する