PlistBuddy

最近由于工作需要,发现了这么一个小工具。

PlistBuddy是一个Mac里的命令行下读写plist文件的工具。
位于/usr/libexec/下,由于这个路径不在默认的PATH里,需要通过绝对路径/usr/libexec/PlistBuddy引用。

用PlistBuddy修改Plist文件

 

Plist文件是以.plist为结尾的文件的总称. 众所周知, Plist在Mac OSX系统中起着举足轻重的作用,就如同Windows里面的Registry一样,系统和程序使用Plist文件来存储自己的安装/配置/属性等信息。正如可以使用命令行命令来处理大多数系统管理一样,操作Plist文件也是系统提供的。    

所幸有PlistBuddy工具,这个工具通过它的简单语法就可以操作嵌套的键值。如果你的系统没有PlistBudy可以安装苹果的开发工具。

基本的使用可以查看man文档或者是在线帮助:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
$ plistbuddy -h
Command Format:
     Help- Prints this information
     Exit- Exits the program, changes are not saved to the file
     Save- Saves the current changes to the file
     Revert- Reloads the last saved version of the file
     Clear[<</code>Type>]- Clears out all existing entries, and creates root ofType
     Print[<</code>Entry>]- Prints value of Entry.  Otherwise, printsfile
     Set<</code>Entry><</code>Value>- Sets the value at Entry to Value
     Add<</code>Entry><</code>Type>[<</code>Value>]- Adds Entry to the plist, with valueValue
     Copy<</code>EntrySrc><</code>EntryDst>- Copies the EntrySrc property toEntryDst
     Delete<</code>Entry>- Deletes Entry from the plist
     Merge<</code>file.plist>[<</code>Entry>]- Adds the contents of file.plist toEntry
     Import<</code>Entry><</code>file>- Creates or sets Entry the contents offile
               
Entry Format:
     Entriesconsist of property key names delimited bycolons.  Array items
     arespecified by a zero-based integer index. Examples:
         :CFBundleShortVersionString
         :CFBundleDocumentTypes:2:CFBundleTypeExtensions
               
Types:
     string
     array
     dict
     bool
     real
     integer
     date
     data
               
Examples:
     Set:CFBundleIdentifier com.apple.plistbuddy
         Setsthe CFBundleIdentifier property tocom.apple.plistbuddy
     Add:CFBundleGetInfoString string "App version 1.0.1"
         Addsthe CFBundleGetInfoString property to the plist
     Add:CFBundleDocumentTypes: dict
         Addsa new item of type dict to the CFBundleDocumentTypesarray
     Add:CFBundleDocumentTypes:0 dict
         Addsthe new item to the beginning of the array
     Delete:CFBundleDocumentTypes:0 dict
         Deletesthe FIRST item in the array
     Delete:CFBundleDocumentTypes
         Deletesthe ENTIRE CFBundleDocumentTypes array

这里主要解释一下PlistBuddy的几个关键点.

  • 如何定义嵌套的键值: 正如前面说的它使用一种简单的描述方式,上一层的键值在前面,而每个键值之间使用":"符号分隔,比如:本文最初的例子中Software->Gallery->OnlineMarketplace表述为:":Software:Gallery:OnlineMarketplace", 第一个":"表示根.

  • 而如果键值的名称包含空格等特殊字符的时候,如同命令行的转义字符一样,使用"/"来转义,比如: ":Software:Gallery:Online/ Marketplace".

  • PlistBuddy如果不使用"-c"参数,则进入人机交互模式, "-c"的意思就是执行它后面的命令列表,而命令如果有参数,需要把它们包含在引号中,

1.添加

plistbuddy -c 'Add :Software:Gallery:Version string "1.0"' ~/Desktop/com.sample.plist

2.输出

plistbuddy -c "Print" ~/Desktop/com.sample.plist

3.修改

plistbuddy -c 'Set :Software:Gallery:Version "1.1"' ~/Desktop/com.sample.plist

4.删除

plistbuddy -c 'Delete :Software:Gallery:Version' ~/Desktop/com.sample.plist

5.合并

plistbuddy -c "Merge ~/Desktop/Global.plist :Software:Gallery" ~/Desktop/com.sample.plist


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值