Як я можу запросити програмний UUID на Mac програмно з командного рядка?


0

Загально унікальний апаратний ідентифікатор (UUID) розробники часто можуть використовувати розробники для асоціації інформації, унікальної для Mac. Цей ідентифікатор, як правило, зберігатиметься через оновлення або перевстановлення ОС, а також через декілька ОС у багатозавантажувальних установках. Я хотів би мати можливість отримати UUID через командний рядок у macOS для використання зі сценарієм.

Відповіді:


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 я використовую наступний код у 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

Ця спроба перелічити UUID дисків та томів, які відрізняються від апаратних UUID, і часто змінюватиметься, коли том видалено та відтворено.
n8felton

oops - моя помилка - може комусь бути корисним
Neville Hillyer
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.