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, prename
provient 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 rename
from util-linux
. Ensuite, quelqu'un a écrit une version améliorée de Perl rename
dans 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 perl
package d'inclure la rename
commande «full» ou de ne pas inclure de rename
commande 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. prename
a été conservé pour jessie, et a maintenant été retiré pour buster. De plus, il semble rename
ne plus être sous le système des alternatives, car il rename.ul
est trop incompatible. rename
sera juste file-rename
.
Étant donné qu'Ubuntu récupère généralement les modifications d'emballage de Debian, ce qui se passe rename
dans 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 prename
et file-rename
exécutez des expressions Perl pour renommer les fichiers. file-rename
est simplement activement maintenu et prend en charge plus d'options. rename
des util-linux
œuvres entièrement différentes, a ses propres règles pour les modèles.
man prename
17.10 , il semble que le 17.10 ait effectivement reprisfile-rename
au lieu deprename
. Idem pour le 18.04 .