A sintaxe expansão de contraventores aceita vírgulas, mas não aceita espaço após a vírgula. Em muitas linguagens de programação, espaços após vírgulas são comuns, mas não aqui. No Bash, a presença de um espaço sem aspas impede que a expansão do suporte seja executada.
Remova o espaço e funcionará:
cp ~/some/dir/{my-file-to-rename.bin,new-name-of-file.bin}
Embora não seja obrigatório, observe que você pode mover o .bin
à direita para fora das chaves:
cp ~/some/dir/{my-file-to-rename,new-name-of-file}.bin
Se você quiser testar o efeito da expansão de chaves, use echo
ou printf '%s '
ou printf
com qualquer string de formato que você preferir, para fazer isso. (Pessoalmente eu uso apenas echo
para isso, quando estou no Bash, porque Bash echo
builtin não expande seqüências de escape por padrão, e é razoavelmente adequado para verificar qual comando será executado. Por exemplo:
ek@Io:~$ echo cp ~/some/dir/{my-file-to-rename,new-name-of-file}.bin
cp /home/ek/some/dir/my-file-to-rename.bin /home/ek/some/dir/new-name-of-file.bin