Answers:
该 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
要列出所有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