¿Cómo puedo consultar el UUID de hardware de una Mac programáticamente desde una línea de comandos?

0

El identificador único universal de hardware (UUID) a menudo puede ser utilizado por los desarrolladores para asociar información única a una Mac. Este identificador generalmente persistirá a través de actualizaciones o reinstalaciones del sistema operativo, así como a través de múltiples sistemas operativos en instalaciones de arranque múltiple. Me gustaría poder recuperar el UUID a través de una línea de comandos en macOS para usarlo con un script.

    
pregunta n8felton 08.11.2018 - 16:43

2 respuestas

4

El comando ioreg se puede usar para esta tarea.

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

De forma similar, puede obtener la misma información en un formato de Lista de propiedades (plist / xml) al incluir la opción -a , que es útil para implementaciones que funcionan mejor con XML. Un ejemplo de línea de comando sería usar xmllint --xpath

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

A menudo veo el comando system_profiler utilizado para esta tarea, sin embargo, he encontrado que el método ioreg es un poco más rápido si el rendimiento es una preocupación.

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
    
respondido por el n8felton 08.11.2018 - 16:43
-1

Para enumerar todos los UUID, uso el siguiente código en la Terminal:

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
    
respondido por el Neville Hillyer 08.11.2018 - 18:11

Lea otras preguntas en las etiquetas