¿Cuál es la diferencia entre los diferentes comandos de "cambio de nombre"?

13

Desde Ubuntu 14.04 hay al menos tres renamecomandos:

  1. renameproporcionado por el util-linuxpaquete, vea man rename.ul
  2. renameproporcionado por el perlpaquete, ver el nombre del hombre
  3. renameproporcionado por el renamepaquete, vea man file-rename

Preguntas:

  • ¿Cuáles son exactamente las diferencias entre esos comandos?
  • ¿Cómo es que hay varios paquetes que proporcionan diferentes comandos con el mismo nombre? Supongo que no es un accidente, ¿o sí?
  • ¿No sería bastante sencillo para el perlpaquete incluir el renamecomando "completo" o no incluir ningún renamecomando? ¿Por qué esta división aparentemente incompleta se mantiene hasta al menos Ubuntu 17.04?

Esta pregunta ya se ha hecho en U&L (como descubrí más adelante):
¿Qué pasa con todos los cambios de nombre: prename, rename, file-rename?

postre
fuente

Respuestas:

8

¿Cómo es que hay dos paquetes que proporcionan diferentes comandos con el mismo nombre (si no por accidente)?

Eso no es inusual. Los autores generalmente eligen el nombre de comando más simple que piensan, por lo que si dos personas escriben un comando para cambiar el nombre de los archivos, es probable que ambos lo nombren rename. Esa es una de las razones detrás del sistema Debian Alternatives : permite que los paquetes que proporcionan comandos con nombres similares coexistan y que un paquete reemplace a otro. Por ejemplo, hay múltiples implementaciones de AWK - mawk, original-awk, gawk(aunque todos ellos se refieren a sí mismos como awk). Con el sistema de alternativas, puede instalarlos todos al mismo tiempo y cambiar convenientemente entre cualquiera de ellos de forma predeterminada awk.

En este caso específico, prenameproviene del código fuente de Perl. Los mantenedores de paquetes de Debian originalmente tenían renamesea el Perl, entonces cambiado al sistema de alternativas, para acomodar el renamede util-linux. Luego, alguien escribió una versión mejorada de Perl renameen el módulo File-Rename Perl , que luego se agregó como otra alternativa. Pero ese ni siquiera es el único módulo Perl para renombrar archivos.

¿No sería bastante sencillo para el perlpaquete incluir el renamecomando "completo" o no incluir ningún renamecomando? ¿Por qué esta división aparentemente incompleta se mantiene hasta al menos Ubuntu 17.04?

Vea el error de Debian # 735134 para ver cómo evolucionó esta situación. Los mantenedores de Debian generalmente prefieren ir al menos una versión cuando hacen algo drástico, como reemplazar un comando de trabajo con otro. prenamefue guardado por Jessie, y ahora ha sido eliminado por Buster. Además, parece renameque ya no estará bajo el sistema de alternativas, ya que rename.ules demasiado incompatible. renameserá igual file-rename.

Dado que Ubuntu generalmente recoge los cambios de empaquetado de Debian, lo que sucede renameen Debian será recogido por Ubuntu tarde o temprano, probablemente en 18.04. Parece que es demasiado tarde para las 17.10.

¿Cuáles son exactamente las diferencias entre esos comandos?

Fundamentalmente, tanto prenamey file-renameejecutar expresiones Perl a los archivos de cambio de nombre. file-renamese mantiene activamente y admite más opciones. renamede util-linuxobras completamente diferentes, tiene sus propias reglas para los patrones.

muru
fuente
A partir man prenamede 17.10 , parece que 17.10 de hecho se recuperó en file-renamelugar de prename. Lo mismo para 18.04 .
wjandrea