Come posso interrogare l'UUID hardware di un Mac a livello di programmazione da una riga di comando?

0

L'identificatore univoco universale (UUID) dell'hardware può essere spesso utilizzato dagli sviluppatori per associare informazioni uniche a un Mac. Questo identificatore di solito persiste attraverso aggiornamenti o reinstallazione del sistema operativo, nonché su più sistemi operativi in installazioni multi-boot. Mi piacerebbe essere in grado di recuperare l'UUID tramite una riga di comando in macOS per poterlo utilizzare con uno script.

    
posta n8felton 08.11.2018 - 16:43
fonte

2 risposte

4

Il comando ioreg può essere utilizzato per questa attività.

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

Allo stesso modo, puoi ottenere le stesse informazioni in un formato Elenco delle proprietà (plist / xml) includendo l'opzione -a che è utile per le implementazioni che funzionano meglio con XML. Un esempio di riga di comando sarebbe utilizzare xmllint --xpath

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

Spesso vedo il comando system_profiler utilizzato per questa attività, tuttavia, ho trovato che il metodo ioreg è leggermente più veloce se le prestazioni sono un problema.

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
    
risposta data 08.11.2018 - 16:43
fonte
-1

Per elencare tutti gli UUID, utilizzo il seguente codice nel Terminale:

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
    
risposta data 08.11.2018 - 18:11
fonte

Leggi altre domande sui tag