18 - February - 2011

Tips&Tricks: virtuosismi BASH

Ciao a tutti,

chiacchierando con Andrea su Skype e girovagando per la rete, ci siamo imbatutti in uno script BASH molto carino che vorremmo condividere con voi. E’ risaputo che sia io che Andrea siamo personcine poco adatte alle interfacce grafiche e pertanto potete capire il nostro tedio nel dover usare quelle finestre “piene di bottoni” dei software di masterizzazione (K3B ad esempio)…

Pertanto, per chi come noi preferisce sempre verde e comodissima interfaccia testuale, ecco un modo per non dover lasciare la console neanche quando dobbiamo masterizzare un CD.

--- CODE HERE ---
#!/bin/bash
# burn-cd.sh
# Script per rendere automatica la registrazione di un CDR.

VELOC=2          #  Potete utilizzare una velocità più elevata
		 #+ se l'hardware la supporta.
FILEIMMAGINE=cdimage.iso
CONTENUTIFILE=contenuti
DEFAULTDIR=/opt  # Questa è la directory contenente i dati da registrare.
                 # Accertatevi che esista.

# Viene usato il pacchetto  "cdrecord" di Joerg Schilling.
# (http://www.fokus.gmd.de/nthp/employees/schilling/cdrecord.html)

#  Se questo script viene eseguito da un utente ordinario va impostato
#+ il flag suid a cdrecord (chmod u+s /usr/bin/cdrecord, da root).

if [ -z "$1" ]
then
  DIRECTORY_IMMAGINE=$DEFAULTDIR
  #  Viene usata la directory predefinita se non ne viene specificata
  #+ alcuna da linea di comando.
else
  DIRECTORY_IMMAGINE=$1
fi

#  Crea un "sommario" dei file.
ls -lRF $DIRECTORY_IMMAGINE > $DIRECTORY_IMMAGINE/$CONTENUTIFILE
#  L'opzione "l" fornisce un elenco "dettagliato".
#  L'opzione "R" rende l'elencazione ricorsiva.
#  L'opzione "F" evidenzia i tipi di file (le directory hanno una
#+ "/" dopo il nome).
echo "Il sommario è stato creato."

# Crea l'immagine del file che verrà registrato sul CDR.
mkisofs -r -o $FILEIMMAGINE $DIRECTORY_IMMAGINE
echo "È stata creata l'immagine ($FILEIMMAGINE) su file system ISO9660."

# Incide il CDR.
cdrecord -v -isosize speed=$VELOC dev=0,0 $FILEIMMAGINE
echo "Sto \"bruciando\" il CD."
echo "Siate pazienti, occorre un po' di tempo."

exit 0
--- END CODE HERE ---

Divertitevi adesso a masterizzare i vostri CD direttamente dalla console! ^_^

Stay Tuned!

Diego

Leave a Reply