Leer el título de un DVD?


8

Me di cuenta de que cada imagen de DVD tiene un nombre en mayúscula semi-único. ¿Hay alguna forma estandarizada para que yo simplemente lea este nombre como usuario no root en Linux? Estoy en un derivado de Ubuntu 12.04 que ejecuta el kernel 3.7. Me gustaría simplemente obtener el nombre de cualquier disco actualmente en la unidad de la siguiente manera:

DVD_NAME="$( ./read-dvd-name.sh )"

1
Es una mala práctica usar todos los nombres de variables en mayúscula para las variables que no son de entorno.
jordanm

55
Gracias, pero esto no responde a mi pregunta :) Las malas prácticas son discutibles.
Naftuli Kay

2
Por eso fue un comentario y no una respuesta.
jordanm

Respuestas:


11

Podrías usar blkidpara eso:

DVD_NAME=$(blkid -o value -s LABEL /dev/dvd)

(necesita tener permiso de lectura /dev/dvdpara eso).

O:

DVD_NAME=$(udevadm info -n dvd -q property | sed -n 's/^ID_FS_LABEL=//p')

para el cual no necesita ningún privilegio especial ( udev(ejecutándose como root) consulta el nombre de la etiqueta usando blkidy actualiza la base de datos del dispositivo con el que consulta udevadm).


¿Necesito ser root para hacer eso?
Naftuli Kay

1

No estoy seguro de si esto te ayudaría:

isoinfo  -i C462_19-08-26_09-56.iso -d | sed -n 's/^Volume id: //p'
isoinfo  -i C462_19-08-26_09-56.iso -d | awk '/Volume id: / {print $3}'

Mi torpe solución original:

dvdtitle=$(isoinfo  -i isofile.iso -d | grep "Volume id:" | awk '{print $3}')

2
(1) El título de la pregunta es "¿Leer el título de un DVD?" y la última oración de la pregunta dice: "Me gustaría simplemente obtener el nombre de cualquier disco que se encuentre actualmente en la unidad ...", por lo que probablemente debería comenzar sugiriendo y luego agregar, como una posdata, el hecho de que El comando se puede utilizar para examinar una imagen ISO en un archivo especificando . … (Continúa)isoinfo -i /dev/cdrom -d   ……   -i iso_image_filename 
G-Man dice 'Reincorporar a Monica' el

2
(Cont.) ... (2) awkes una poderosa herramienta de procesamiento de texto; casi nunca necesita usarlo junto con otra herramienta de procesamiento de texto como grep. Su tubería, grep "Volume id:" | awk '{print $3}'se puede simplificar a awk '/Volume id: / {print $3}'. (3) Las ID de volumen pueden ser varias palabras, y este print $3enfoque muestra solo la primera. Hay formas de manejar esto awk, pero un enfoque más fácil es canalizar la salida desde isoinfoadentro sed -n 's/Volume id: //p'. (4) Como control de cordura, sería mejor buscar /^Volume id: /.
G-Man dice 'Restablecer a Monica' el

Estimado G-Man, gracias por sus valiosas sugerencias. :-) Sinceramente X.
xerostomus
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.