$ toque em mickey \ mouse01 mickey \ mouse02 mickey \ mouse03
$ ls
'mickey mouse01' 'mickey mouse02' 'mickey mouse03'
$ renomear mickey \ mouse mickey_mouse mickey \ mouse *
$ ls
mickey_mouse01 mickey_mouse02 mickey_mouse03
Estou tentando usar a função renomear, fornecida como parte do cygwin, unix-utils (março de 2015) e não funciona como anunciado.
Todos os exemplos que vi indicam que esta é a sintaxe:
rename 's/old pattern/new pattern' *.txt
Isto supostamente substitui TODAS as ocorrências de nomes de arquivos, contendo o padrão antigo, com o novo nome, usando o novo padrão, mas, em vez disso, ele não faz nada. Literalmente. Nenhum erro de sintaxe. Nenhum aviso. Eu entro no comando; o comando é executado; e o prompt reaparece, mas nada aconteceu. Estou substituindo traços por espaços, então achei que talvez precise usar um caractere de escape, mas não teve nenhum efeito.
Este código funciona, mas apenas para UMA ocorrência do padrão:
rename "old pattern" "new pattern" *.txt
Estou usando a versão mais recente de renomeação? Existe outro comando que eu possa usar? Eu estou renomeando arquivos usando "-" em vez de espaços, então ter que colocar a renomeação em um loop apenas para se livrar de 1 a 10 traços em centenas de arquivos, é muito, muito ruim.
Como sempre, sua ajuda seria muito apreciada.
Tony