for name in *\[*\]\ -\ *; do
if [[ -d "$name" ]] && [[ ! -e "${name#* - }" ]]; then
mv "$name" "${name#* - }"
fi
done
The loop above, which would work in bash
or ksh93
at least, gesgoes through all thingsnames in the current directory matching the filename globbing pattern *\[*\]\ -\ *
(the brackets and spaces need to be escaped from the shell) and tests to make sure it's a directory and that the modified name doesn't already exist. If that's all ok, then it renames the directory.
The parameter expansion ${name#* - }
will take the value of the variable name
and remove everything from the start of it to the first occurrence of ␣-␣
(space-dash-space).