Na mém systému Debian (no, můj systém LMDE, ale dostatečně blízko), mám alespoň 3 různé rename
programy:
-
/usr/local/bin/rename
:Toto je skript v Perlu, který napsal Tom Christiansen. Kupodivu nemůžu najít, který balíček to nainstaloval:$ dpkg -S /usr/local/bin/rename dpkg-query: no path found matching pattern /usr/local/bin/rename
-
/usr/bin/prename
:další skript pro perl, napsaný Robinem Barkerem, tento je součástíperl
balíček:$ dpkg -S /usr/bin/prename perl: /usr/bin/prename
-
/usr/bin/file-rename
:další perlský scénář, žádné jasné informace o autorství, ale jsou zmíněni jak Larry (pravděpodobně Wall), tak Robin (pravděpodobně Barker). Tento se instaluje pomocírename
balíček a je také symbolicky propojen s/usr/bin/rename
:$ dpkg -S /usr/bin/file-rename rename: /usr/bin/file-rename
Mám také rename.ul
z util-linux
ale teď to ignorujme. Jaký je rozdíl mezi těmito 3 skripty v Perlu? Zdá se, že všechny mají stejnou manuálovou stránku, man rename
, man file-rename
a man prename
všichni mi dejte stejnou stránku.
Mohl bych projít samotné skripty a pokusit se porozumět rozdílům, ale to není triviální a doufám, že někdo bude vědět, jaké vlastnosti má každý a ostatní ne. Bonusové body za vysvětlení, proč svět Debianu potřebuje tři samostatné skripty pro přejmenování v Perlu.
Přijatá odpověď:
Nejsem si jistý, jestli by to měl být komentář, ale je to jen částečná odpověď — Bug #735134:perl:rename(1) je prastarý.
má to, co se zdá být semeny nepořádku. Konkrétně:
Abychom to shrnuli:po mnoho let perlský balíček poskytuje
/usr/bin/rename, samostatný nástroj implementovaný v perlu. Problém je v tom, že
už nechceme poskytovat nástroj z balíčku perl, protože
byl přidán lokálně v debianu/ a není udržován. Udržovaná
verze je k dispozici jako samostatný balíček, libfile-rename-perl.
Soubor libfile-rename-perl
výše zmíněný je nyní nahrazen výrazem 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
Perl má tedy své vlastní rename
který není spravován Debianem a poskytuje /usr/bin/prename
. Vývojáři Debianu udržují rename
balíček (zřejmě dříve známý jako libfile-rename-perl
), což je balíček, který poskytuje /usr/bin/rename
:symbolický odkaz na /etc/alternatives/rename
což je samo o sobě symbolický odkaz na /usr/bin/file-rename
skript.
Skript Toma Christiansena je spojen s Perlovým Unicode::Tussle
modul. Pravděpodobně jste jej nainstalovali a to je to, co poskytuje /usr/local/bin/rename
.