Leia o título de um DVD?

8

Percebi que cada imagem de DVD tem um nome em maiúscula semi-exclusivo. Existe uma maneira padronizada para eu simplesmente ler esse nome como um usuário não root no Linux? Estou em um derivado do Ubuntu 12.04 executando o kernel 3.7. Gostaria simplesmente de obter o nome de qualquer disco atualmente na unidade da seguinte forma:

DVD_NAME="$( ./read-dvd-name.sh )"
Naftuli Kay
fonte
1
É uma prática recomendada usar todos os nomes de variáveis ​​em maiúsculas para variáveis ​​que não são de ambiente.
Jordanm
5
Obrigado, mas isso não responde à minha pergunta :) A má prática é discutível.
Naftuli Kay
2
Por isso foi um comentário e não uma resposta.
Jordanm

Respostas:

11

Você pode usar blkidpara isso:

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

(você precisa ter permissão de leitura /dev/dvdpara isso).

Ou:

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

para o qual você não precisa de nenhum privilégio especial ( udev(executando como root) consulta o nome do rótulo usando blkide atualiza um banco de dados do dispositivo com o qual você consulta udevadm).

Stéphane Chazelas
fonte
Preciso ser raiz para fazer isso?
Naftuli Kay
1

Não tenho certeza se isso ajudaria você:

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}'

Minha desajeitada solução original:

dvdtitle=$(isoinfo  -i isofile.iso -d | grep "Volume id:" | awk '{print $3}')
xerostomus
fonte
2
(1) O título da pergunta é "Leia o título de um DVD?" e a última frase da pergunta diz: "Gostaria simplesmente de obter o nome de qualquer disco atualmente na unidade ...", portanto, você provavelmente deve começar sugerindo e, em seguida, adicionar, como um postscript, o fato de que o O comando pode ser usado para examinar uma imagem ISO em um arquivo, especificando . … (Continua)isoinfo -i /dev/cdrom -d   ……   -i iso_image_filename 
G-Man diz 'Restabelecer Monica' em
2
(Continua)… (2) awké uma poderosa ferramenta de processamento de texto; você quase nunca precisa usá-lo em conjunto com outra ferramenta de processamento de texto , como grep. Seu pipeline,, grep "Volume id:" | awk '{print $3}'pode ser simplificado para awk '/Volume id: / {print $3}'. (3) Os IDs de volume podem ter várias palavras, e essa print $3abordagem exibe apenas a primeira. Existem maneiras de lidar com isso awk, mas uma abordagem mais fácil é canalizar a saída para isoinfodentro sed -n 's/Volume id: //p'. (4) Como uma verificação de sanidade, seria melhor procurar /^Volume id: /.
G-Man diz 'Reinstate Monica'
Caro G-Man, obrigado por dicas valiosas. :-) Atenciosamente X.
xerostomus