It depends exactly what you want. If the target directory can be a sequential number, then:-
#!bin/ksh
typeset -Z5 i=1
L=1
for file in `ls -1 $source_dir`
do
if [ ! -d ${target}${i} ] # If target directory does not exist
then
mkdir ${target}${i} # Create target directory
fi
cp -p $file ${target}${i} # Copy file including timestamp and permissions
((L=$L+1)) # Increment loop counter
if [ $L -ge 10 ] # If we have processed 10 files, .....
then
((i=$i+1)) # increment target directory
((L=1)) # Set loop count back
fi
done
I hope that this helps, but please write back if I have missed the point.
You may well want to blend the two so you end up with subdirectories of each of these having a limited number of files, but that would be more fun to work out yourself, unless you get completely stuck.
Let me know if this is a suitable suggestion or if I have missed the point.