Me entregan una ruta de un directorio o un archivo.
¿Qué utilidad / script de shell me dará de manera confiable el UUID del sistema de archivos en el que se encuentra este directorio / archivo?
Por UUID del sistema de archivos me refiero a la UUID=...entrada como se muestra por ej.blkid
Estoy usando Redhat Linux.
(alguien sugirió que debería preguntar esto aquí en unix.stackexchange.com, así que lo moví del stackexchange.com original)
linux
shell
block-device
uuid
linfan
fuente
fuente

blkid.Respuestas:
Una opción es
stat+findmntcombo:Aquí
-ndeshabilita el encabezado e-o UUIDimprime solo el valor UUID. La opción-c '%m'destatestá presente para generar solo el punto de montaje de la ruta dada.fuente
stat:findmnt -no uuid -T "$path"Puede usar df para encontrar el punto de montaje del archivo y luego aplicar el resultado a blkid al UUID. Debe ejecutar (al menos) blkid como raíz para que esto funcione:
fuente
-o export, ya que imprime la salida del formularioUUID=....-o value) o unaUUID="value"expresión de tipo (-o export). Elegí el valor.