Este pequeno script deve fazer o truque (os nomes de arquivos e diretórios podem conter espaços): (deve ser chamado com baseir como parâmetro)
#!/bin/bash
basedir=$1
while IFS= read -r -d '' path;
do
dirn=$(basename "$path")
echo "===> $path"
let i=1
while IFS= read -r -d '' fname;
do
fext=$(echo "$fname" | awk -F '.' '{print $NF}')
mv "$fname" "${path}/${dirn}-${i}.${fext}"
let i=i+1
done < <(find "$path" -maxdepth 1 -type f -print0)
done < <(find "$basedir" -type d -print0)