La sintaxis de expansión de llaves acepta comas, pero no acepta un espacio después de la coma. En muchos lenguajes de programación, los espacios después de las comas son comunes, pero no aquí. En Bash, la presencia de un espacio sin comillas evita que se realice la expansión de llaves.
Elimina el espacio y funcionará:
cp ~/some/dir/{my-file-to-rename.bin,new-name-of-file.bin}
Si bien no es obligatorio, tenga en cuenta que puede mover el final .bin
fuera de las llaves:
cp ~/some/dir/{my-file-to-rename,new-name-of-file}.bin
Si desea probar el efecto de la expansión de llaves, puede usar echo
o printf '%s '
, o printf
con la cadena de formato que prefiera, hacer eso. (Personalmente, solo lo uso echo
para esto, cuando estoy en Bash, porque la función echo
integrada de Bash no expande las secuencias de escape de forma predeterminada, y por lo tanto es razonablemente adecuado para verificar qué comando realmente se ejecutará). Por ejemplo:
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