Batch renomeia os diretórios?

6

Eu tenho vários diretórios com o formato do ano, mês e dia, seguido por uma descrição do evento. Por exemplo: "2012 05 26 - EventA", "2012 05 26 - EventB". O que eu gostaria de fazer é renomear todos esses diretórios para que os espaços entre os números na data sejam substituídos por traços. Assim, "2012 05 26 - EventA" torna-se "2012-05-26 - EventA". Eu sei que posso fazer isso uma pasta de cada vez com o comando mv, mas existe uma maneira de fazer isso em um processo em lote com curingas de alguma forma?

    
por Brian 26.05.2012 / 20:35

5 respostas

5

Experimente o pyRenamer: link

ou similar: link

    
por jasmines 26.05.2012 / 20:42
1

Você também pode usar mmv .

sudo aptitude install mmv

#> mmv "201? * * - Event?" "201#1-#2-#3 - Event#4"

    
por Avio 27.05.2012 / 00:40
0

Use renomear (com a opção -n para testar as alterações):

rename 'm/(\d{4}) (\d{2}) (.*)/;$_="--"' *

Renomear é fornecido pelo perl, então você pode precisar instalá-lo (não sei se é parte do pacote de instalação do Ubuntu):

sudo apt-get install perl
    
por Maxime R. 26.05.2012 / 21:13
0

Eu queria renomear vários diretórios (pastas, não arquivos) e não consegui descobrir se isso é possível com pyRenamer. GPRename ( link ) faz o truque muito bem embora.

Usuários do Ubuntu devem ter o GPRename em seus repositórios e podem executar este comando para instalar o GPRename:

sudo apt-get install gprename

    
por Sietse 15.03.2016 / 15:33
-1

Você não pode renomear arquivos em lote usando o comando mv . Você precisa escrever scripts de shell, você pode obter os scripts, fazendo uma pesquisa no google ou você pode usar as ferramentas mencionadas acima.

    
por Bidyut 05.10.2015 / 05:31