Kopierstation/Code
#!/bin/sh
DISK1=/tmp/disk1
DISK2=/tmp/disk2
subdir=files_from_other_disk
TEMP=/tmp/$$
DISK1_DIR="$TEMP/disk1"
DISK2_DIR="$TEMP/disk2"
for disk in $DISK1 $DISK2 $TEMP
do
       mkdir -p "$disk"/"$subdir"
       if [ $? -ne 0 ] ; then
               echo could not create directory \"$subdir\"
               exit
       fi
done
cd "$DISK1"
find . -type f -exec md5sum {} \; >> "$DISK1_DIR"
cd "$DISK2"
find . -type f -exec md5sum {} \; >> "$DISK2_DIR"
cd "$DISK1"
cat "$DISK1_DIR" | while read hash filename
do
       if [ `grep -c $hash "$DISK2_DIR"` -eq 0 ]  ; then
               target="$DISK2"/"$subdir"/`dirname "$filename"`
               if [ ! -d  "$target" ] ; then
                       mkdir -p "$target"
               fi
               cp "$filename" "$target"
       fi
done
cd "$DISK2"
cat "$DISK2_DIR" | while read hash filename
do
       if [ `grep -c $hash "$DISK1_DIR"` -eq 0 ]  ; then
               target="$DISK1"/"$subdir"/`dirname "$filename"`
               if [ ! -d  "$target" ] ; then
                       mkdir -p "$target"
               fi
               cp "$filename" "$target"
       fi
done
rm -fr $TEMP
Verbesserungsmöglichkeiten: Verwendung der Hardwarepfade /dev/disk/by-id/usb-blubb oder by-path/blubb und du kannst jeden USB-Hub einzeln ansprechen.