Kjetil's Information Center: A Blog About My Projects

DVD Batch Copying

I needed to copy a lot of files from a lot of DVDs over to a local hard-drive. In order to help with this, I made a shell script to semi-automate the process. This script will eject the tray, wait for the user to press enter, then close the tray and start copying files. After it is done copying, the process loops, asking for the next DVD to be put in the tray.

Here it is, hope you can make use of it:


function abort {
  echo "Aborting..."
  eject -t /dev/cdrom

trap abort SIGINT

# Find first available directory.
while [ -d "./dvd_$DVD_NO" ]; do
  DVD_NO=`expr $DVD_NO + 1`

while /bin/true; do
  eject /dev/cdrom

  # Wait for user to press enter.
  while /bin/true; do
    echo -n "Feed me! "
    read -n 1 CHAR
    if [ "$CHAR" == "" ]; then

  eject -t /dev/cdrom
  echo "Reading DVD #$DVD_NO..."
  sleep 30
  mkdir -v "./dvd_$DVD_NO" || exit 1
  mount /mnt/cdrom || exit 2

  cp -v -R /mnt/cdrom/* "./dvd_$DVD_NO"
  find "./dvd_$DVD_NO" -type d -exec chmod 755 {} \;
  find "./dvd_$DVD_NO" -type f -exec chmod 644 {} \;

  sleep 3
  umount /mnt/cdrom
  sleep 3
  DVD_NO=`expr $DVD_NO + 1`

Topic: Scripts and Code, by Kjetil @ 12/06-2011, Article Link