Flatten it, without collisions
find ./from -type f | awk '{ str=$0; sub(/.//, "", str); gsub(///, "-", str); print "mv " $0 " ./to/" str }' | bash
find ./from -type f | awk '{ str=$0; sub(/.//, "", str); gsub(///, "-", str); print "mv " $0 " ./to/" str }' | bash