A sintaxe de expansão do colchete aceita vírgulas, mas não aceita um 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 a execução da expansão de chaves.
Remova o espaço e ele funcionará:
cp ~/some/dir/{my-file-to-rename.bin,new-name-of-file.bin}
Embora não seja de todo necessário, observe que você pode mover a trilha para .bin
fora dos aparelhos:
cp ~/some/dir/{my-file-to-rename,new-name-of-file}.bin
Se você quiser testar o efeito da expansão entre chaves, poderá usar isso echo
ou printf '%s '
, ou printf
com a sequência de formatos que preferir. (Pessoalmente, eu apenas uso echo
isso quando estou no Bash, porque o echo
built-in do Bash não expande as seqüências de escape por padrão e, portanto, é razoavelmente adequado para verificar qual comando realmente 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