for name in *\[*\]\ -\ *; do
if [[ -d "$name" ]] && [[ ! -e "${name#* - }" ]]; then
mv "$name" "${name#* - }"
fi
done
O loop acima, que funcionaria em bash ou ksh93 , passa por todos os nomes no diretório atual que correspondem ao padrão globbing de nome de arquivo *\[*\]\ -\ * (os colchetes e espaços precisam ser escapados do shell) e testes para se certificar de que é um diretório e que o nome modificado ainda não existe. Se tudo estiver ok, então ele renomeia o diretório.
A expansão do parâmetro ${name#* - } assumirá o valor da variável name e removerá tudo desde o início até a primeira ocorrência de ␣-␣ (espaço-traço-espaço).
