Was ist der Unterschied zwischen den verschiedenen Befehlen zum Umbenennen?

13

Seit Ubuntu 14.04 gibt es mindestens drei renameBefehle:

  1. renamebereitgestellt durch das util-linuxPaket, siehe man rename.ul
  2. renameWird vom perlPaket bereitgestellt, siehe man prename
  3. renameim renamePaket enthalten, siehe man file-rename

Fragen:

  • Was genau sind die Unterschiede zwischen diesen Befehlen?
  • Wie kommt es, dass mehrere Pakete unterschiedliche Befehle mit demselben Namen bereitstellen - ich nehme an, das ist kein Zufall, oder?
  • Wäre es nicht recht einfach, wenn das perlPaket entweder den renameBefehl "full" oder gar keinen renameBefehl enthält? Warum wird diese scheinbar unvollständige Trennung bis mindestens Ubuntu 17.04 aufrechterhalten?

Diese Frage wurde bereits bei U & L gestellt (wie ich später herausfand):
Was ist mit all den Umbenennungen: Vorname, Umbenennung, Datei-Umbenennung?

Dessert
quelle

Antworten:

8

Wie kommt es, dass zwei Pakete unterschiedliche Befehle mit demselben Namen bereitstellen (wenn nicht versehentlich)?

Das ist nicht ungewöhnlich. Autoren wählen normalerweise den einfachsten Befehlsnamen, an den sie denken. Wenn also zwei Personen einen Befehl schreiben, um Dateien umzubenennen, wird er wahrscheinlich von beiden benannt rename. Dies ist einer der Gründe für das Debian Alternatives-System - es ermöglicht, dass Pakete mit ähnlich benannten Befehlen nebeneinander existieren und dass ein Paket ein anderes ersetzt. Zum Beispiel gibt es mehrere AWK - Implementierungen - mawk, original-awk, gawk(obwohl sie alle bezeichnen sich selbst als awk). Mit dem alternativen System können Sie sie alle gleichzeitig installieren und bequem zwischen ihnen als Standard wechseln awk.

In diesem speziellen Fall prenamekommt aus dem Perl-Quellcode. Die Debian-Paketbetreuer waren ursprünglich renamedie Perl- Betreuer , die dann auf das alternative System umgestiegen sind, um das renamevon aufzunehmen util-linux. Dann hat jemand eine verbesserte Version von Perl renameim Modul Perl zum Umbenennen von Dateien geschrieben , die dann als weitere Alternative hinzugefügt wurde. Aber das ist nicht einmal das einzige Perl-Modul zum Umbenennen von Dateien.

Wäre es nicht recht einfach, wenn das perlPaket entweder den renameBefehl "full" oder gar keinen renameBefehl enthält? Warum wird diese scheinbar unvollständige Trennung bis mindestens Ubuntu 17.04 aufrechterhalten?

Siehe Debian-Fehler # 735134, wie sich diese Situation entwickelt hat. Debian-Betreuer bevorzugen im Allgemeinen mindestens eine Veröffentlichung, wenn sie etwas drastisches tun, wie das Ersetzen eines Arbeitsbefehls durch einen anderen. prenamewurde für jessie herumgehalten und wurde nun für buster entfernt. Darüber hinaus sieht es so aus, als würde renamees nicht mehr unter das Alternativsystem fallen, da rename.ules zu inkompatibel ist. renamewird gerecht sein file-rename.

Da Ubuntu generell Paketänderungen von Debian renameübernimmt, wird das , was in Debian passiert, früher oder später von Ubuntu aufgenommen, wahrscheinlich im 18.04. Für den 17.10. Scheint es zu spät zu sein.

Was genau sind die Unterschiede zwischen diesen Befehlen?

Grundsätzlich können Sie beide prenameund file-renamePerl-Ausdrücke ausführen, um Dateien umzubenennen. file-renamewird nur aktiv gepflegt und unterstützt weitere Optionen. renamevon util-linuxarbeitet ganz anders, hat seine eigenen Regeln für Muster.

muru
quelle
Von man prenamefür 17,10 , sieht es aus wie 17.10 in der Tat hat abholen file-renamestatt prename. Gleiches gilt für den 18.04 .
wjandrea