La syntaxe d' extension d'accolade accepte les virgules, mais elle n'accepte pas d'espace après la virgule. Dans de nombreux langages de programmation, les espaces après des virgules sont monnaie courante, mais pas ici. Dans Bash, la présence d'un espace sans guillemets empêche l'expansion de l'accolade.
Retirez l'espace, et cela fonctionnera:
cp ~/some/dir/{my-file-to-rename.bin,new-name-of-file.bin}
Bien que cela ne soit pas du tout requis, notez que vous pouvez déplacer la queue en .bindehors des accolades:
cp ~/some/dir/{my-file-to-rename,new-name-of-file}.bin
Si vous souhaitez tester l'effet de l'expansion de l'accolade, vous pouvez utiliser echoou printf '%s ', ou printfavec la chaîne de format que vous préférez, pour le faire. (Personnellement, je ne l'utilise que echopour cela, lorsque je suis dans Bash, car la fonction echointégrée de Bash ne développe pas les séquences d'échappement par défaut, et est donc raisonnablement bien adaptée pour vérifier quelle commande sera réellement exécutée.) Par exemple:
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