Existem alguns truques (há uma duplicata a ser encontrada, eu acho), mas para isso eu costumo fazer
cp /etc/prog/dir1/myconfig.yml{,.bak}
que é expandido para o seu comando.
Isso é conhecido como expansão de contraventores . Na forma usada aqui, a expressão {}
especifica um número de cadeias separadas por vírgulas. Esses "expandem" toda a expressão /etc/prog/dir1/myconfig.yml{,.bak}
, substituindo a parte {}
por cada sequência: a sequência vazia, dando /etc/prog/dir1/myconfig.yml
e, em seguida, .bak
, dando /etc/prog/dir1/myconfig.yml.bak
. O resultado é
cp /etc/prog/dir1/myconfig.yml /etc/prog/dir1/myconfig.yml.bak
Essas expressões podem ser aninhadas:
echo a{b,c,d{e,f,g}}
produz
ab ac ade adf adg
Há uma variante usando números para produzir seqüências:
echo {1..10}
produz
1 2 3 4 5 6 7 8 9 10
e você também pode especificar a etapa:
echo {0..10..5}
produz
0 5 10