Gostaria de mover vários arquivos ao mesmo tempo para novos locais específicos.
Diga que eu tenho o seguinte
wrong name | c.txt | a.txt | b.txt |
Correct name| a.txt | b.txt | c.txt |
Eu gostaria então de fazer algo como fazer algo como
mv ./{a.txt,b.txt,c.txt} ./{b.txt,c.txt,a.txt}
mas eu recebo o erro
Notar que
se expande para
antes que o
mv
utilitário seja chamado. Como há mais de dois operandos e como o último operando não é um diretório, você recebe um erro. Se o último operando fosse o nome do caminho de um diretório, isso teria movido todos os arquivos para esse diretório (você também obteria alguns erros ao especificar alguns arquivos duas vezes).Em vez disso, mova um arquivo de cada vez para um diretório temporário, renomeando-os para seus nomes corretos ao fazê-lo. Em seguida, mova-os de volta.
Não há atalho para isso, o
mv
utilitário só pode renomear um arquivo por vez.Uma adição à resposta de @Kusalananda:
Você pode torná-lo genérico com uma função:
E então você executa assim:
ou como você fez:
ou