Sur CentOS, la commande rename utilise deux chaînes simples, from
et to
.
rename from to file...
tandis que sur Debian/Ubuntu, il utilise une expression régulière de style perl.
rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]
Pourquoi cet utilitaire diffère-t-il en fonction de la distribution ? Existe-t-il une référence pour les distributions livrées ou par défaut pour les versions de l'utilitaire ?
Réponse acceptée :
Histoire. Il y a deux lignes historiques d'un rename
commande, avec le même objectif de base mais une syntaxe et des capacités complètement différentes :
- Le
rename
commande dans le package util-linux. Il est apparu dans la version 2.10e et le programme est daté du 2000-01-01. - Un script Perl, qui a été distribué avec Perl comme programme d'exemple. Le changelog Debian enregistre son ajout à Debian en juin 1999 (le programme lui-même remonte à au moins 1992). Une autre version, qui est rétrocompatible, est livrée avec Unicode ::Tussle (à partir de Debian jessie, elle s'appelle
file-rename
, et fourni dans le champrename
emballer; certaines autres distributions l'appellentprename
).
D'une part, util-linux est un paquet de base, il est donc plus standard que le script d'exemple Perl qui a été inclus au gré de Debian. D'un autre côté, le script Perl était d'abord dans Debian. Jusqu'à présent, Debian a choisi de préserver la compatibilité avec les versions précédentes de Debian, plutôt que de s'aligner sur d'autres distributions. Les distributions dérivées de Debian (Ubuntu, Mint, élémentaire, etc.) ont tendance à suivre Debian sur ce point.
Les autres distributions n'avaient pas de rename
commande lorsqu'une a été ajoutée à util-linux, elles incluent donc naturellement la version util-linux.