Baca judul dari DVD?

8

Saya perhatikan bahwa setiap gambar DVD memiliki nama besar yang unik. Apakah ada cara standar bagi saya untuk hanya membaca nama ini sebagai pengguna non-root di Linux? Saya menggunakan turunan Ubuntu 12.04 menjalankan kernel 3.7. Saya hanya ingin mendapatkan nama disk apa pun yang ada di drive seperti ini:

DVD_NAME="$( ./read-dvd-name.sh )"
Naftuli Kay
sumber
1
Ini praktik buruk untuk menggunakan semua nama variabel huruf besar untuk variabel non-lingkungan.
jordanm
5
Terima kasih, tetapi ini tidak menjawab pertanyaan saya :) Praktek buruk masih bisa diperdebatkan.
Naftuli Kay
2
Itu sebabnya itu adalah komentar dan bukan jawaban.
jordanm

Jawaban:

11

Anda bisa menggunakannya blkiduntuk itu:

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

(Anda harus memiliki izin baca /dev/dvduntuk itu).

Atau:

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

di mana Anda tidak memerlukan hak istimewa khusus ( udev(berjalan sebagai root) menanyakan nama label menggunakan blkiddan memperbarui basis data perangkat yang Anda tanyai udevadm).

Stéphane Chazelas
sumber
Apakah saya perlu menjadi root untuk melakukan itu?
Naftuli Kay
1

Saya tidak yakin apakah ini akan membantu Anda:

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

Solusi asli saya yang canggung:

dvdtitle=$(isoinfo  -i isofile.iso -d | grep "Volume id:" | awk '{print $3}')
xerostomus
sumber
2
(1) Judul pertanyaan adalah "Baca judul dari DVD?" dan kalimat terakhir dalam pertanyaan mengatakan, "Saya hanya ingin mendapatkan nama disk apa pun yang saat ini ada di drive ...", jadi Anda mungkin harus memulai dengan menyarankan , dan kemudian menambahkan, sebagai catatan tambahan, fakta bahwa perintah dapat digunakan untuk memeriksa citra ISO dalam file dengan menentukan . … (Lanjutan)isoinfo -i /dev/cdrom -d   ……   -i iso_image_filename 
G-Man Mengatakan 'Reinstate Monica'
2
(Lanjutan) ... (2) awkadalah alat pemrosesan teks yang kuat; Anda tidak perlu menggunakannya bersamaan dengan alat pemrosesan teks lain seperti grep. Saluran pipa Anda grep "Volume id:" | awk '{print $3}',, dapat disederhanakan menjadi awk '/Volume id: / {print $3}'. (3) Volume ID dapat terdiri dari beberapa kata, dan print $3pendekatan ini hanya menampilkan yang pertama. Ada beberapa cara untuk menangani hal ini awk, tetapi pendekatan yang lebih mudah adalah menyalurkan output dari isoinfodalam sed -n 's/Volume id: //p'. (4) Sebagai pemeriksaan kewarasan, akan lebih baik untuk mencari /^Volume id: /.
G-Man Mengatakan 'Reinstate Monica'
G-Man sayang, terima kasih atas petunjuk berharga Anda. :-) Hormat kami X.
xerostomus