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.
man prenamede 17.10 , parece que 17.10 de fato pegou emfile-renamevez deprename. Mesmo para 18.04 .