Qual é a diferença entre os diferentes comandos "renomear"?

13

Desde o Ubuntu 14.04, existem pelo menos três renamecomandos:

  1. renamefornecido pelo util-linuxpacote, consulte man rename.ul
  2. renamefornecido pelo perlpacote, consulte man prename
  3. renamefornecido pelo renamepacote, consulte man file-rename

Questões:

  • Quais são exatamente as diferenças entre esses comandos?
  • Como é que existem vários pacotes fornecendo comandos diferentes usando o mesmo nome - suponho que não seja um acidente ou é?
  • Não seria bastante simples para o perlpacote incluir o renamecomando “full” ou não incluir nenhum renamecomando? Por que essa divisão aparentemente incompleta é mantida até pelo menos o Ubuntu 17.04?

Essa pergunta já foi feita em U&L (como descobri mais adiante):
O que há com todas as renomeações: prename, rename, file-rename?

sobremesa
fonte

Respostas:

8

Como existem dois pacotes que fornecem comandos diferentes usando o mesmo nome (se não por acidente)?

Isso não é incomum. Os autores geralmente escolhem o nome de comando mais simples em que pensam; portanto, se duas pessoas escrevem um comando para renomear arquivos, é provável que ambos o nomeiem rename. Essa é uma das razões por trás do sistema Debian Alternatives - ele permite que pacotes com comandos com nomes semelhantes coexistam e que um pacote substitua outro. Por exemplo, existem várias implementações AWK - mawk, original-awk, gawk(embora todos eles se referem a si mesmos como awk). Com o sistema de alternativas, você pode instalá-los todos ao mesmo tempo e alternar convenientemente entre eles como padrão awk.

Nesse caso específico, prenamevem do código-fonte Perl. O mantenedor do pacote Debian originalmente era renameo Perl, depois mudou para o sistema de alternativas, para acomodar o renamefrom util-linux. Alguém escreveu uma versão aprimorada do Perl renameno módulo File-Rename Perl , que foi adicionado como outra alternativa. Mas esse nem é o único módulo Perl para renomear arquivos.

Não seria bastante simples para o perlpacote incluir o renamecomando “full” ou não incluir nenhum renamecomando? Por que essa divisão aparentemente incompleta é mantida até pelo menos o Ubuntu 17.04?

Veja o bug Debian # 735134 para saber como essa situação evoluiu. Os mantenedores do Debian geralmente preferem lançar pelo menos um release ao fazer algo drástico, como substituir um comando que está funcionando por outro. prenamefoi mantido por Jessie e agora foi removido por Buster. Além disso, parece que renamenão estará mais no sistema de alternativas, pois rename.ulé muito incompatível. renameserá justo file-rename.

Como o Ubuntu geralmente pega mudanças de pacotes no Debian, o que acontece renameno Debian será captado pelo Ubuntu mais cedo ou mais tarde, provavelmente em 18.04. Parece ser tarde demais para 17.10.

Quais são exatamente as diferenças entre esses comandos?

Fundamentalmente, ambos prenamee file-renameexecutam expressões Perl para renomear arquivos. file-renameé apenas mantido ativamente e suporta mais opções. renamede util-linuxobras inteiramente diferentes, tem suas próprias regras para padrões.

muru
fonte
A partir man prenamede 17.10 , parece que 17.10 de fato pegou em file-renamevez de prename. Mesmo para 18.04 .
Wjandrea # 7/18