Існує ряд хитрощів (я думаю, що дублікат можна знайти), але для цього я схильний робити
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
:)