Фигурные скобки синтаксис принимает запятые, но он не принимает пробел после запятой. Во многих языках программирования пробелы после запятой являются обычным явлением, но не здесь. В Bash наличие пробела без кавычек не позволяет выполнить расширение скобок.
Уберите пробел, и он будет работать:
cp ~/some/dir/{my-file-to-rename.bin,new-name-of-file.bin}
Хотя это и не требуется, обратите внимание, что вы можете переместить трейлинг .bin
за скобки:
cp ~/some/dir/{my-file-to-rename,new-name-of-file}.bin
Если вы хотите проверить эффект расширения скобок, вы можете использовать echo
или printf '%s '
, или printf
с любой строкой формата, которую вы предпочитаете, чтобы сделать это. (Лично я просто использую echo
для этого, когда нахожусь в Bash, потому что echo
встроенная функция Bash по умолчанию не расширяет escape-последовательности и, таким образом, достаточно хорошо подходит для проверки того, какая команда на самом деле будет выполняться.) Например:
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