Bash – Error with a file name containing parentheses

bashquotingshell

when I tried to change file name from old.file(1).gz to new.file.gz, It says syntax error, I am using ubuntu 12.04.

mv old.file(1).gz new.file.gz
bash: syntax error near unexpected token `('

Best Answer

Yeti's comment will work for you, but if you would like to know why, it's because parentheses are interpreted as special characters, and have to either be escaped with \ or the entire filename quoted (as above) [edit: sorry, only the ( and ) need to be quoted].

If you have tab completion enabled, just type the first few characters of the file name and hit tab. I.e., typing mv old and hitting tab, should turn into mv old.file\(1\).gz (unless there are other potential files that old* could refer to).

Related Question