You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac终端无临时文件用PlistBuddy解析hdiutil输出遇问题求助

解决Mac终端用PlistBuddy解析hdiutil输出(无需临时文件)

你猜的完全没错——PlistBuddy默认确实不直接读取标准输入(STDIN),它只认实实在在的文件路径,这就是你两个命令失败的核心原因:

为什么你的命令不行?

  • 命令1:hdiutil info -plist | PlistBuddy -c "Print"
    当你用管道把plist内容传给PlistBuddy时,它因为没收到指定的文件路径,直接触发了默认的帮助信息输出,相当于你只敲了PlistBuddy -c "Print"却没给目标文件。
  • 命令2:PlistBuddy -c "Print" $(hdiutil info -plist)
    这里的命令替换$(...)会把hdiutil输出的整个XML格式plist文本当成文件名传给PlistBuddy,系统自然找不到这个奇怪的“文件名”,还会因为文本里的XML标签报错格式无效。

正确的解决办法

利用Mac系统里的/dev/stdin文件描述符,它可以把标准输入的内容伪装成一个“虚拟文件”供PlistBuddy读取:

hdiutil info -plist | PlistBuddy -c "Print" /dev/stdin

如果要提取特定字段(比如第一个镜像的挂载点),可以直接指定plist路径,不用先打印整个内容:

hdiutil info -plist | PlistBuddy -c "Print :0:mount-point" /dev/stdin

这样既不用生成临时文件,又能让PlistBuddy正常解析hdiutil输出的plist内容啦。

内容的提问来源于stack exchange,提问作者tenhittender

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 08:47:28