This should work as long as you have files with spaces in their names. What *nix are you on?
–
terdon♦Apr 7 '13 at 4:11

Would you mind showing some sample directory data in this question?
–
slm♦Apr 7 '13 at 4:36

Try adding -v (and optionally -n) to the rename part to see what is it doing. Also, you might need to modify the s/// option to be s///g to replace all matched characters, not only the first one it encounters.
–
zorlemApr 7 '13 at 11:27

rename is not a standard tool, so the various implementations have different syntax. Have you checked that you use the right syntax?
–
manatworkApr 7 '13 at 11:29

@terdon: That was my mistake. I totally forgot "* *" would look for files with spaces in the name, whereas what I need to do is "*[*". If you convert your comment to an answer I'll mark you correct.
–
QuestionerApr 7 '13 at 15:23

You're using command substitution without setting IFS (though the OP was explicitly wanting to rename files with spaces in their name) ${i/../} is to replace one occurrence while the OP used the g flag, you forgot to quote some variables. That won't work properly if directory names contain [
–
Stéphane ChazelasApr 7 '13 at 15:04