O que há com todas as renomeações: prename, rename, file-rename?

22

No meu sistema Debian (bem, meu sistema LMDE, mas próximo o suficiente), eu tenho pelo menos 3 programas rename diferentes:

  • /usr/local/bin/rename : Este é um script em Perl, escrito por Tom Christiansen. Por estranho que pareça, não consigo encontrar qual pacote o instalou:

    $ dpkg -S /usr/local/bin/rename 
    dpkg-query: no path found matching pattern /usr/local/bin/rename
    
  • /usr/bin/prename : outro script perl, escrito por Robin Barker, este é parte do pacote perl :

    $ dpkg -S /usr/bin/prename
    perl: /usr/bin/prename
    
  • /usr/bin/file-rename : ainda outro roteiro Perl, nenhuma informação de autoria clara, mas tanto um Larry (presumivelmente Wall) quanto um Robin (presumivelmente Barker) são mencionados. Este é instalado pelo pacote rename e também é vinculado a /usr/bin/rename :

    $ dpkg -S /usr/bin/file-rename
    rename: /usr/bin/file-rename
    

Eu também tenho rename.ul de util-linux , mas vamos ignorar essa por enquanto. Qual é a diferença entre esses 3 scripts Perl? Todos eles parecem ter a mesma página de manual, man rename , man file-rename e man prename todos me dão a mesma página.

Eu poderia passar pelos próprios scripts e tentar entender as diferenças, mas isso não é trivial e espero que alguém saiba quais recursos cada um tem do que os outros não. Pontos de bônus para explicar por que o mundo Debian precisa de três scripts separados de renomeação Perl.

    
por terdon 12.09.2015 / 13:57

1 resposta

16

Não tenho certeza se isso deve ser um comentário, mas é apenas uma resposta parcial -

link

tem o que parece ser a semente da bagunça. Especificamente:

So to summarise: for many years the perl package has provided /usr/bin/rename, a stanalone utility implemented in perl. The issue is we don't want to provide the utility from the perl package any more because it's been added locally inside debian/ and is not being maintained. A maintained version is available as a separate package, libfile-rename-perl.

O libfile-rename-perl mencionado acima foi substituído por rename :

$ apt-cache show rename | head
Package: rename
Version: 0.20-3
Installed-Size: 69
Maintainer: Debian Perl Group <[email protected]>
Architecture: all
Replaces: libfile-rename-perl
Provides: libfile-rename-perl
Depends: perl
Conflicts: libfile-rename-perl
Description-en: Perl extension for renaming multiple files

Portanto, o Perl tem seu próprio rename , que não é mantido pelo Debian e fornece /usr/bin/prename . O Debian devs mantém um pacote rename (aparentemente conhecido anteriormente como libfile-rename-perl ) que é o pacote que fornece /usr/bin/rename : um link simbólico para /etc/alternatives/rename , que por sua vez é um symlink para o script /usr/bin/file-rename .

O script de Tom Christiansen é empacotado com o módulo Unicode::Tussle de Perl. Você provavelmente instalou e foi isso que forneceu /usr/local/bin/rename .

    
por 12.09.2015 / 16:04