Logo Hardware.com.br
matulio
matulio Novo Membro Registrado
38 Mensagens 0 Curtidas

renomear pastas em massa - script

#1 Por matulio 31/07/2007 - 22:18
Olá, pessoal

tenho mais de 2000 pastas no formato "usuário.sobrenome@dominio.com.br" que armazenam as mensagens de email dos usuários.
Gostaria de renomeá-las para "usuário.sobrenome", ou seja, retirar o "@dominio.com.br" da pasta, alguém pode me ajudar ?
pflynn
pflynn Ubbergeek Registrado
5.5K Mensagens 122 Curtidas
#2 Por pflynn
01/08/2007 - 10:43
Faça o seguinte (Bash):

se você tem a variavel:

[code=rich]
[EMAIL="DIR=usuario.sobrenome@dominio.com.br"]DIR=usuario.sobrenome@dominio.com.br[/EMAIL]
[/code]

então, o resultado da espansão

[code=rich]
${DIR%%\@dominio.com.br}
[/code]

vai ser

[code=rich]
usuario.sobrenome
[/code]

Ou seja, se você possuir uma lista com os nomes dos diretórios, basta utilizar a expansão acima para renomeá-los:

[code=rich]
for DIR in *\@dominio.com.br
do
mv DIR ${DIR%%\@dominio.com.br}
done
[/code]


Fácil assim ;-)
------------------------------------------------
Muito bom. Mas tijolo não revida!
------------------------------------------------
matulio
matulio Novo Membro Registrado
38 Mensagens 0 Curtidas
#3 Por matulio
01/08/2007 - 12:27
olá, pflynn

antes de tudo, obrigado por responder smile.png

eu fiz o que me indicaste.

# for DIR in *\@dominio.com.br
> do
> mv DIR ${DIR%%\@dominio.com.br}
> done

mas mostra uma mensagem de erro, e não renomeia.

"mv: impossível fazer stat em `DIR': Arquivo ou diretório inexistente"
Não entendi se precisa fazer algo antes de rodar o comando.
Atenciosamente,

Marco Túlio
__________________
Belém - Pará - Brasil
pflynn
pflynn Ubbergeek Registrado
5.5K Mensagens 122 Curtidas
#4 Por pflynn
01/08/2007 - 12:45
matulio disse:



É que cometi um pequeno erro no script...ficou faltando o '$' antes da variável DIR na linha do mv:

[code=rich]
mv $DIR ${DIR%%\@dominio.com.br}
[/CODE]

Ou seja, o script correto fica:

[CODE=rich]
for DIR in *\@dominio.com.br
do
mv $DIR ${DIR%%\@dominio.com.br}
done

[/CODE]
------------------------------------------------
Muito bom. Mas tijolo não revida!
------------------------------------------------
© 1999-2025 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal