#!/bin/sh iriver=/mnt force= while getopts 'i:d:f' opt; do case $opt in i ) iriver="$OPTARG" ;; d ) iriver="$OPTARG" ;; f ) force="y" ;; esac done shift $(($OPTIND - 1)) check () { [ -d "$1" ] || { echo "iriver error: $1 doesn't exist" >&2 echo "iriver error: does not look like iRiver device at $iriver" >&2 exit 1 } } [ -n "$force" ] || check "$iriver/VOICE" [ -n "$force" ] || check "$iriver/RECORD" if [ -z "$*" ] then find . -type f -name '*.mp3' -print else for d in "$@" do find "$d" -type f -name '*.mp3' -print done fi | sort | tar cf - -T - | { cd "$iriver" && tar xvf - }