Estoy en el proceso de intentar automatizar conseguir el LVGUUID e imprimirlo como cadena a un archivo de texto, o canalizarlo mejor en terminal a otros comandos. Todo lo que puedo hacer ahora es diskutil coreStorage list
y luego copiar / pegar el UUID según sea necesario. ¿Hay una manera más rápida de hacer esto?
Respuesta
¿Demasiados anuncios?Nota: Esta respuesta es solo ejemplo de código como sólo tengo una Core Volumen de Almacenamiento a prueba en contra, sin embargo, si hay más de uno, el awk
comando podría ser modificado para adaptarse en consecuencia. Aunque sin el resultado de múltiples núcleos Volúmenes de Almacenamiento, no puedo dar un ejemplo.
Si es el Logical Volume Group UUID
, puede el usuario en el siguiente ejemplo:
$ lvguuid="$(diskutil coreStorage list | awk '/Logical Volume Group/{print $5}')"
$ echo "$lvguuid"
696AD841-1F53-4D33-9496-3E36D33AB270
$
En la awk
comando, puede sustituir Logical Volume Group
con Physical Volume
, Logical Volume Family
y cambio $5
según corresponda. Basada en el orden de la cadena de búsqueda se muestra en esta línea, va a ser $5
, $4
, $5
.
Para Logical Volume
, usted necesitará utilizar un regex
, como en el siguiente ejemplo:
lvuuid="$(diskutil coreStorage list | awk '/Logical Volume [A-F0-9]{8}-/{print $4}')"
La comprensión de la regex
:
-
Logical Volume [A-F0-9]{8}-
-
Logical Volume
coincide con los caracteresLogical Volume
literalmente (mayúsculas y minúsculas).
-
-
[A-F0-9]{8}
- Partido de un único personaje presente en la lista de abajo.-
{8}
Cuantificador - Coincide exactamente con 8 veces. -
A-F
a un único carácter en el rango de entreA
(índice de 65 años) yF
(índice 70) (mayúsculas y minúsculas). -
0-9
a un único carácter en el rango de entre0
(índice 48) y9
(índice 57) (mayúsculas y minúsculas). -
-
coincide con el carácter-
literalmente (mayúsculas y minúsculas).
-
Así que, en mi ejemplo awk
coincide Logical Volume 38712F52-
y devoluciones:
38712F52-5967-4A49-87D6-C66D4B199F28
Los ejemplos anteriores se establece una variable que puede ser llamado desde la línea de comandos o script, sin embargo, si lo que la salida a un archivo, utilice el siguiente ejemplo:
diskutil coreStorage list | awk '/Logical Volume Group/{print $5}' > /path/to/filename
En mi sistema he aquí el resultado de la diskutil coreStorage list
comando en el cifrado de Unidad Flash USB:
$ diskutil coreStorage list
CoreStorage logical volume groups (1 found)
|
+-- Logical Volume Group 696AD841-1F53-4D33-9496-3E36D33AB270
=========================================================
Name: Encrypted
Status: Online
Size: 15661490176 B (15.7 GB)
Free Space: 16777216 B (16.8 MB)
|
+-< Physical Volume E0E76F6B-A4E2-466D-B8E5-D5977ECD0522
| ----------------------------------------------------
| Index: 0
| Disk: disk3s2
| Status: Online
| Size: 15661490176 B (15.7 GB)
|
+-> Logical Volume Family EAF4984B-94C8-49B6-BCC6-76A8724E04D2
----------------------------------------------------------
Encryption Status: Unlocked
Encryption Type: AES-XTS
Conversion Status: Complete
Conversion Direction: -none-
Has Encrypted Extents: Yes
Fully Secure: Yes
Passphrase Required: Yes
|
+-> Logical Volume 38712F52-5967-4A49-87D6-C66D4B199F28
---------------------------------------------------
Disk: disk4
Status: Online
Size (Total): 15325941760 B (15.3 GB)
Size (Converted): -none-
Revertible: Yes (unlock and decryption required)
LV Name: Encrypted
Volume Name: Encrypted
Content Hint: Apple_HFS
$