Baseado em Mark A resposta selecionada de Mann , eu pude derivar ainda mais este exemplo, o que funciona muito bem:
$ eval echo\ category_{17,32,33}.properties\{,.bak\}\;
category_17.properties category_17.properties.bak
category_32.properties category_32.properties.bak
category_33.properties category_33.properties.bak
O que está sendo mostrado é quando você está usando várias ocorrências de expansão de chave dentro de uma linha, o exemplo original de Mark teria impresso cada variação individualmente. Em vez disso, eu queria usar sua resposta para mover / renomear vários arquivos. Para garantir que a saída corresponda ao formato que mv
normalmente espera ( mv oldfilename newfilename
), escapei da segunda ocorrência de expansão de chave, para que ela não fosse avaliada até após a inicial eval
comando foi executado.
Como a saída acima apareceu como esperado, consegui executar o seguinte comando:
$ eval mv\ category_{17,32,33}.properties\{,.bak\}\;
$ ls
category_17.properties.bak category_32.properties.bak category_33.properties.bak
Muito obrigado a Mark por sua resposta original. Por favor, vote na sua resposta se você gostar do que a resposta dele me permitiu fazer: -)