Come mai ci sono due pacchetti che forniscono comandi diversi usando lo stesso nome (se non per caso)?
Non è insolito. Gli autori in genere scelgono il nome del comando più semplice a cui pensano, quindi se due persone scrivono un comando per rinominare i file, è probabile che lo nomineranno entrambi rename. Questo è uno dei motivi alla base del sistema Debian Alternatives : consente la coesistenza di pacchetti che forniscono comandi con nomi simili e che un pacchetto ne sostituisca un altro. Ad esempio, ci sono più implementazioni AWK - mawk, original-awk, gawk(anche se tutti si riferiscono a se stessi come awk). Con il sistema alternativo, è possibile installarli tutti contemporaneamente e passare comodamente da uno qualsiasi di quelli predefiniti awk.
In questo caso specifico, prenameviene dal codice sorgente Perl. I manutentori del pacchetto Debian erano originariamente renamequelli Perl, quindi passati al sistema alternativo, per accogliere il renameda util-linux. Quindi qualcuno ha scritto una versione migliorata di Perl renamenel modulo File-Rename Perl , che è stato poi aggiunto come un'altra alternativa. Ma questo non è nemmeno l'unico modulo Perl per rinominare i file.
Non sarebbe piuttosto semplice per il perlpacchetto includere il renamecomando "completo" o non includere alcun renamecomando? Perché questa divisione apparentemente incompleta è sostenuta almeno fino a Ubuntu 17.04?
Vedi bug Debian # 735134 per come si è evoluta questa situazione. I manutentori di Debian generalmente preferiscono fare almeno una versione quando si fa qualcosa di drastico, come sostituire un comando funzionante con un altro. prenameè stato tenuto in giro per Jessie e ora è stato rimosso per Buster. Inoltre, sembra renameche non sarà più nel sistema delle alternative, poiché rename.ulè troppo incompatibile. renamesarà giusto file-rename.
Dato che Ubuntu generalmente rileva i cambiamenti di packaging da Debian, ciò che accade renamein Debian verrà rilevato da Ubuntu prima o poi, probabilmente nel 18.04. Sembra essere troppo tardi per il 17.10.
Quali sono esattamente le differenze tra questi comandi?
Fondamentalmente, entrambi prenameed file-renameeseguono espressioni Perl per rinominare i file. file-renameè solo attivamente gestito e supporta più opzioni. renameda util-linuxopere completamente diverse, ha le sue regole per i modelli.
man prenameper 17.10 , sembra che 17.10 abbia effettivamente raccoltofile-renameinvece diprename. Lo stesso per il 18.04 .