Expansão de chaves no Bash

No Bash, você pode usar chaves para reduzir a quantidade de digitação necessária ao chamar comandos com vários argumentos.

$> mv path/to/{old_directory,new_directory}/file

Acho que isso também é útil ao criar um novo arquivo semelhante a outros no mesmo diretório:

$> vi path/to/{new_file.rb,*}

Isso abrirá o novo arquivo como o primeiro buffer e todos os outros arquivos no diretório como buffers adicionais para referência.

Você também pode usar mais de duas strings na expansão:

$> ls {.,lib,spec}/*.rb

Múltiplas expansões resultarão em cada combinação expressa:

$> rm images/{v1,v2}/*.{gif,jpg,png}

Se você quiser ver como uma expansão específica será tratada, basta substituir o comando por echo:

$> echo images/{v1,v2}/*.{gif,jpg,png}
images/v1/*.gif images/v1/*.jpg images/v1/*.png images/v2/*.gif images/v2/*.jpg images/v2/*.png