Quelle est la différence entre les différentes commandes «renommer»?

13

Depuis Ubuntu 14.04, il existe au moins trois renamecommandes:

  1. renamefourni par le util-linuxpaquet, voir man rename.ul
  2. renamefourni par le perlpaquet, voir man prename
  3. renamefourni par le renamepaquet, voir man file-rename

Des questions:

  • Quelles sont exactement les différences entre ces commandes?
  • Comment se fait-il qu'il existe plusieurs packages fournissant différentes commandes utilisant le même nom - je suppose que ce n'est pas un accident, ou est-ce?
  • Ne serait-il pas assez simple pour le perlpackage d'inclure la renamecommande «full» ou de ne pas inclure de renamecommande du tout? Pourquoi cette séparation apparemment incomplète est-elle maintenue jusqu'à au moins Ubuntu 17.04?

Cette question a déjà été posée sur U&L (comme je l'ai découvert plus tard):
Qu'est-ce qui se passe avec tous les renommages: prename, rename, file-rename?

dessert
la source

Réponses:

8

Comment se fait-il qu'il y ait deux packages fournissant des commandes différentes utilisant le même nom (sinon par accident)?

Ce n'est pas inhabituel. Les auteurs choisissent généralement le nom de commande le plus simple auquel ils pensent, donc si deux personnes écrivent une commande pour renommer des fichiers, il est probable qu'ils la nommeront tous les deux rename. C'est l'une des raisons derrière le système Debian Alternatives - il permet aux paquets fournissant des commandes portant le même nom de coexister et à un paquet d'en remplacer un autre. Par exemple, il existe plusieurs implémentations de AWK - mawk, original-awk, gawk(bien qu'ils se réfèrent tous comme awk). Avec le système alternatif, vous pouvez les installer tous en même temps et basculer facilement entre l'un d'eux par défaut awk.

Dans ce cas précis, prenameprovient du code source Perl. Les mainteneurs du paquet Debian devaient à l'origine renameêtre le Perl, puis sont passés au système alternatif, pour accueillir le renamefrom util-linux. Ensuite, quelqu'un a écrit une version améliorée de Perl renamedans le module File-Rename Perl , qui a ensuite été ajoutée comme autre alternative. Mais ce n'est même pas le seul module Perl pour renommer des fichiers.

Ne serait-il pas assez simple pour le perlpackage d'inclure la renamecommande «full» ou de ne pas inclure de renamecommande du tout? Pourquoi cette séparation apparemment incomplète est-elle maintenue jusqu'à au moins Ubuntu 17.04?

Voir le bogue Debian # 735134 pour voir comment cette situation a évolué. Les responsables Debian préfèrent généralement utiliser au moins une version lorsqu'ils font quelque chose de radical, comme remplacer une commande qui fonctionne par une autre. prenamea été conservé pour jessie, et a maintenant été retiré pour buster. De plus, il semble renamene plus être sous le système des alternatives, car il rename.ulest trop incompatible. renamesera juste file-rename.

Étant donné qu'Ubuntu récupère généralement les modifications d'emballage de Debian, ce qui se passe renamedans Debian sera repris par Ubuntu tôt ou tard, probablement en 18.04. Il semble trop tard pour 17h10.

Quelles sont exactement les différences entre ces commandes?

Fondamentalement, les deux prenameet file-renameexécutez des expressions Perl pour renommer les fichiers. file-renameest simplement activement maintenu et prend en charge plus d'options. renamedes util-linuxœuvres entièrement différentes, a ses propres règles pour les modèles.

muru
la source
Depuis le man prename17.10 , il semble que le 17.10 ait effectivement repris file-renameau lieu de prename. Idem pour le 18.04 .
wjandrea