Qual è la differenza tra i diversi comandi di "rinomina"?


13

Da Ubuntu 14.04 ci sono almeno tre renamecomandi:

  1. renamefornito dal util-linuxpacchetto, consultare man rename.ul
  2. renamefornito dal perlpacchetto, vedere man prename
  3. renamefornito dal renamepacchetto, vedere man file-rename

Domande:

  • Quali sono esattamente le differenze tra questi comandi?
  • Come mai ci sono più pacchetti che forniscono comandi diversi usando lo stesso nome - suppongo che non sia un incidente o no?
  • 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?

Questa domanda è già stata posta su U&L (come ho scoperto in seguito):
Cosa c'è con tutti i nomi: nome, nome, nome file?

Risposte:


8

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.


Da man prenameper 17.10 , sembra che 17.10 abbia effettivamente raccolto file-renameinvece di prename. Lo stesso per il 18.04 .
wjandrea,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.