Existem vários truques (acho que existe uma duplicata), mas, por isso, costumo fazer
cp /etc/prog/dir1/myconfig.yml{,.bak}
que é expandido para o seu comando.
Isso é conhecido como expansão de chaves . No formulário usado aqui, a {}
expressão especifica um número de seqüências de caracteres separadas por vírgulas. Eles "expandem" toda a /etc/prog/dir1/myconfig.yml{,.bak}
expressão, substituindo a {}
parte por cada sequência: a sequência vazia, dando /etc/prog/dir1/myconfig.yml
e .bak
, em seguida , 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 sequê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
bash-fu
:)