Uma maneira geral de renomear todos os arquivos em um diretório

Uma maneira geral de renomear todos os arquivos em um diretório

Eu tenho criado funções bash simples para isso, find -execanalisando ls ou usando bash globbing, etc., cada vez que tive um grande problema e tive que usar um novo método, uma vez a lista de argumentos era muito longa, outra vez, arquivos que já tinham um name like 2foi substituído quando outro arquivo foi renomeado para 2.

Uma vez foi um problema com unicode, uma vez com espaço no nome do arquivo, uma vez com *ou &no nome do arquivo e assim por diante. Então pensei em vir aqui e perguntar a vocês a maneira mais eficiente e robusta de propósito geral de renomear todos os arquivos em um diretório para terem nomes sequenciaisnão importa o que!. Não importa o tamanho dos nomes dos arquivos e qual é o seu nome original ou qual extensão eles possuem e não importa se eles contêm caracteres não-ASCII.

Então meus requisitos são:

  1. Que funciona com nomes de arquivos longos.
  2. Que funciona com caracteres Unicode.
  3. Funciona se os arquivos contiverem espaço ou caracteres especiais.
  4. Que não sobrescreva nenhum arquivo em outro.
  5. Que seja o mais rápido possível :D

Responder1

Se o seu Ubuntu não é um servidor, não o trate como um. pyRenamer dos repositórios padrão do Ubuntu tem todos os recursos que você procura, incluindo suporte a regex, e como é um programa GUI, você não precisa quebrar a cabeça tentando descobrir como usá-lo. Se estiver tendo problemas para escrever uma expressão regular, você pode obter uma explicação sobre o que sua regex faz emRegExr. Não se torne tendencioso contra programas GUI que foram criados para casos de uso como este.

pyRenamer está disponível nos repositórios padrão do Ubuntu no Ubuntu 16.04 e versões anteriores. No Ubuntu 18.04 e posterior, o pyRenamer foi substituído porGPRenome.

informação relacionada