#!/bin/bash FROM=`realpath $1`; shift TO=`realpath $1`; shift if [ -z "$FROM" ] || [ -z "$TO" ] then echo "Usage: $0 from to" exit 1 elif ! [ -d "$FROM" ] then echo "$FROM not found" exit 2 fi mkdir -p "$TO" || exit 3 rm -rf "$TO" || exit 3 for i in `find "$FROM" -mindepth 1 -type f` do FILE=`echo $i | sed "s!^$FROM/!!"` HASH=`echo -n $FILE | sha384sum | cut -d " " -f 1` mkdir -p "$TO/$HASH/" ln -s "$i" "$TO/$HASH/" done