server/gen_hash_link_files.sh

45 lines
653 B
Bash
Executable File

#!/bin/bash
if [ $# -lt 2 ]
then
echo "Usage: $0 from to"
exit 1
fi
if [ "$1" = "--hard" ]
then
LN="ln"
shift
elif [ "$1" = "--copy" ]
then
LN="cp"
shift
else
LN="ln -s"
fi
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 "$i" "$TO/$HASH/"
done