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, prename
vem do código-fonte Perl. O mantenedor do pacote Debian originalmente era rename
o Perl, depois mudou para o sistema de alternativas, para acomodar o rename
from util-linux
. Alguém escreveu uma versão aprimorada do Perl rename
no 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 perl
pacote incluir o rename
comando “full” ou não incluir nenhum rename
comando? 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. prename
foi mantido por Jessie e agora foi removido por Buster. Além disso, parece que rename
não estará mais no sistema de alternativas, pois rename.ul
é muito incompatível. rename
será justo file-rename
.
Como o Ubuntu geralmente pega mudanças de pacotes no Debian, o que acontece rename
no 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 prename
e file-rename
executam expressões Perl para renomear arquivos. file-rename
é apenas mantido ativamente e suporta mais opções. rename
de util-linux
obras inteiramente diferentes, tem suas próprias regras para padrões.
man prename
de 17.10 , parece que 17.10 de fato pegou emfile-rename
vez deprename
. Mesmo para 18.04 .