Renomeia erro de comando, os arquivos não aparecem mais nas unidades de rede do Windows

1

Eu cometi um erro com o comando rename

find . -type f -exec rename 's/[^A-Za-z0-9._]//g' {} +

Depois disso, os arquivos não estão em suas pastas como costumavam ser e todo arquivo tem. na frente deles. Agora meus clientes não podem ver os arquivos. Depois de remover o. então eles podem ver os arquivos.

Como posso remover? dos arquivos. Assim:

.finacialyear2008half.doc

para

finacialyear2008half.doc

Por favor me ajude! Eu preciso de uma solução rápida.

    
por mYzk 22.11.2013 / 09:07

2 respostas

1

find . -type f -exec rename 's/\.//' '{}' \;

Pense no parâmetro -n de renomear: basta exibir o que ele fará depois de removê-lo!

    
por 22.11.2013 / 09:15
0

Supondo que você esteja usando o bash, você pode percorrer os arquivos substituindo as primeiras ocorrências de /. por / nos nomes de arquivos de todos os arquivos da pasta atual.

for filename in $(find . -maxdepth 1 -type f)
do
  mv -v $filename ${filename/\/.//}
done

Isso pressupõe que você não precisa renomear recursivamente os arquivos e funcionará apenas no diretório atual ( -maxdepth 1 ).

Aviso de isenção de responsabilidade: sempre faça backup de seus arquivos ou, pelo menos, tente com vários arquivos de teste antes de executar qualquer ação nos seus dados.

    
por 22.11.2013 / 09:44