Por que existem dois pacotes fornecendo 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 escreverem um comando para renomear arquivos, é provável que o nomeiem rename
. Essa é uma das razões por trás do sistema Debian Alternatives - permite que os pacotes que fornecem comandos com nomes semelhantes coexistam e que um pacote seja substituído outro. Por exemplo, existem várias implementações do AWK - mawk
, original-awk
, gawk
(embora todas elas se refiram como awk). Com o sistema de alternativas, você pode instalá-los todos ao mesmo tempo e alternar convenientemente entre qualquer um deles como o padrão awk
.
Neste caso específico, prename
vem do código-fonte Perl. Os mantenedores do pacote Debian originalmente tinham rename
o Perl, então mudaram para o sistema de alternativas, para acomodar o rename
de util-linux
. Então alguém escreveu uma versão melhorada do rename
do Perl em File-Rename Perl módulo , que foi então adicionado como outra alternativa. Mas esse não é o único módulo Perl para renomear arquivos.
Não seria bastante simples para o pacote
perl
incluir o comando "full"rename
ou não incluir o comandorename
? Por que essa divisão aparentemente incompleta é mantida pelo menos até o Ubuntu 17.04?
Veja o erro da Debian # 735134 para saber como esta situação evoluiu. Geralmente, os mantenedores do Debian preferem usar pelo menos uma versão ao fazer algo drástico, como substituir um comando de trabalho por outro. prename
foi mantido por jessie e agora foi removido para o buster. Além disso, parece que rename
não estará mais no sistema de alternativas, pois rename.ul
é muito incompatível. rename
será apenas file-rename
.
Como o Ubuntu geralmente pega mudanças de pacotes do Debian, o que acontece com rename
no Debian será escolhido 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, tanto prename
como file-rename
executam expressões Perl para renomear arquivos. file-rename
é apenas mantido ativamente e suporta mais opções. rename
de util-linux
funciona de forma totalmente diferente, tem suas próprias regras para padrões.