Unter CentOS verwendet der Befehl zum Umbenennen zwei einfache Zeichenfolgen from
und to
.
rename from to file...
Unter Debian / Ubuntu wird ein regulärer Ausdruck im Perl-Stil verwendet.
rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]
Warum unterscheidet sich dieses Dienstprogramm aufgrund der Verteilung? Gibt es eine Referenz für welche Distributionen oder standardmäßig für welche Versionen des Dienstprogramms?
Antworten:
Geschichte. Es gibt zwei historische Zeilen eines
rename
Befehls mit demselben Grundzweck, aber völlig unterschiedlicher Syntax und Funktionen:rename
Befehl im util-linux- Paket. Es erschien in Version 2.10e und das Programm ist vom 01.01.2000.file-rename
und ist imrename
Paket enthalten ; einige andere Distributionen nennen esprename
).Einerseits ist util-linux ein Kernpaket, daher ist es mehr Standard als das Perl-Beispielskript, das nach Debians Laune enthalten war. Andererseits war das Perl-Skript zuerst in Debian. Bisher hat Debian beschlossen, die Kompatibilität mit früheren Debian-Versionen beizubehalten, anstatt sich an anderen Distributionen auszurichten. Von Debian abgeleitete Distributionen (Ubuntu, Mint, Elementary usw.) folgen in diesem Punkt eher Debian.
Andere Distributionen hatten keinen
rename
Befehl, als einer zu util-linux hinzugefügt wurde, daher enthalten sie natürlich die util-linux-Version.quelle
/usr/bin/rename
ist nicht Teil eines Pakets. Zumindestdpkg -S /usr/bin/rename
gibt nichts zurück./etc/alternatives/rename
, der standardmäßig die Perl-Version verwendet (kann jedoch nach Wahl des Administrators stattdessen auf die Util-Linux-Version verweisen).update-alternatives --display rename
. Debian erlaubt dem lokalen Systemadministrator, zwischen Util-Linux oder Perl-Umbenennung (oder anderen, falls vorhanden) zu wählensid
Systemutil-linux
keine Alternative für/usr/bin/rename
. aber ein anderes Paketrename
tut, so dass die Entscheidungen sind/usr/bin/prename
vonperl
(Priorität 60) oder/usr/bin/file-rename
ausrename
(Priorität 70).file-rename
scheint eine aktualisierte / erweiterte Version von zu seinprename
.file-rename
ist die Unicode :: Tussle-Version. Ich denke, der Grund dafürrename.ul
ist keine Alternative,rename
weil es nicht kompatibel ist. Ein Administrator, der die Konsistenz zwischen Distributionen bevorzugt, kann den Link dennoch manuell ändern, auf den er verweist/usr/bin/rename.ul
. Ich weiß nicht, ob dies Debian-Skripte beschädigen würde; Im Prinzip können Pakete laut Richtlinie auf die Perl-Version zählen, wenn sie davon abhängenperl
, und Build-Skripte können auf die Perl-Version zählen, da dasperl
Paket für den Build unerlässlich ist.