如何从命令行以编程方式查询Mac的硬件UUID?


0

开发人员通常可以使用硬件通用唯一标识符(UUID)来关联Mac特有的信息。此标识符通常会通过操作系统升级或重新安装以及多引导安装中的多个操作系统持续存在。我希望能够通过macOS中的命令行检索UUID,以便与脚本一起使用。

Answers:


4

ioreg 命令可用于此任务。

ioreg -d2 -c IOPlatformExpertDevice | awk -F\" '/IOPlatformUUID/{print $(NF-1)}'

同样,您可以通过包含属性列表(plist / xml)格式获取相同的信息 -a 选项对于更好地使用XML的实现很有用。一个命令行示例将是使用 xmllint --xpath

ioreg -ad2 -c IOPlatformExpertDevice | 
  xmllint --xpath '//key[.="IOPlatformUUID"]/following-sibling::*[1]/text()' -

我经常看到 system_profiler 用于此任务的命令,但是,我找到了 ioreg 如果性能是一个问题,方法稍微快一些。

time system_profiler SPHardwareDataType | awk '/UUID/ { print $NF }'

real    0m0.295s
user    0m0.110s
sys     0m0.074s


time ioreg -d2 -c IOPlatformExpertDevice | awk -F\" '/IOPlatformUUID/{print $(NF-1)}'

real    0m0.029s
user    0m0.005s
sys     0m0.004s

-1

要列出所有UUID,我在终端中使用以下代码:

for i in $(diskutil list | grep HFS | tr -s ' ' '\t' | cut -f 7); do diskutil info $i | grep UID | tr -s ' ' '\t' | cut -f 4; done

这是尝试列出与硬件UUID不同的磁盘和卷的UUID,并且在删除和重新创建卷时通常会更改。
n8felton

哎呀 - 我的错误 - 可能对某人有用
Neville Hillyer
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.