#!/bin/bash set -eux if [ -d /media/8097-54BA ] then dest_dir=/media/8097-54BA/Music elif [ -d /media/dstromberg/8097-54BA ] then dest_dir=/media/dstromberg/8097-54BA/Music elif [ -d /media/dstromberg/7E7D-8C05 ] then dest_dir=/media/dstromberg/7E7D-8C05/Music elif [ -d /media/7E7D-8C05/Music ] then dest_dir=/media/7E7D-8C05/Music elif [ -d "/media/HP USB FD" ] then dest_dir="/media/HP USB FD/Music/" elif [ -d "/mnt/Car/Music" ] then dest_dir="/mnt/Car/Music/" else echo "$0: No car drive found" 1>&2 exit 1 fi cd ~/sound || exit 1 source_dir=~/sound/avconv-Music case 3 in 1) # this never really worked that well (lots of things retransferred unnecessarily), and gprog gives better progress info # I've not yet tried it with this large --modify-window though. # # A modify window of 1 was too short, but 5 seems to work well. cd "$source_dir" && \ rsync \ -rtuv \ '--omit-dir-times' \ --size-only \ --delete \ '--modify-window'=5 \ --progress \ --stats \ . "$dest_dir" ;; 2) rm -rf "$dest_dir" mkdir "$dest_dir" (cd "$source_dir" && 'gprog-du-tar' --directories * ) | \ (cd "$dest_dir" && tar xvfp -) ;; 3) # Sort the files to get decent directory order, to facilitate "doing studio discographies". set -x rm -rf "$dest_dir" mkdir "$dest_dir" size_in_kilobytes=$(du -sk Minimal-Car-Music | awk ' { print $1 }') size_in_bytes=$(($size_in_kilobytes*1024)) #(cd "$source_dir" && find . -name '*.mp3' -print0 | sort -z | tar --create --null --files-from -) | \ (cd Minimal-Car-Music && find . -name '*.mp3' -print0 | sort -z | tar --create --null --files-from -) | \ gprog --size-estimate "$size_in_bytes" | \ (cd "$dest_dir" && tar xvf -) ;; esac