Есть несколько хитростей (я думаю, что есть дубликат), но для этого я склонен делать
cp /etc/prog/dir1/myconfig.yml{,.bak}
который расширяется до вашей команды.
Это известно как расширение скобки . В используемой здесь форме {}
выражение определяет количество строк, разделенных запятыми. Они «расширяют» все /etc/prog/dir1/myconfig.yml{,.bak}
выражение, заменяя {}
часть каждой строкой по очереди: пустая строка, давая /etc/prog/dir1/myconfig.yml
, а затем .bak
, давая /etc/prog/dir1/myconfig.yml.bak
. Результат
cp /etc/prog/dir1/myconfig.yml /etc/prog/dir1/myconfig.yml.bak
Эти выражения могут быть вложенными:
echo a{b,c,d{e,f,g}}
производит
ab ac ade adf adg
Есть вариант, использующий числа для получения последовательностей:
echo {1..10}
производит
1 2 3 4 5 6 7 8 9 10
и вы также можете указать шаг:
echo {0..10..5}
производит
0 5 10
bash-fu
:)