不同的“重命名”命令之间有什么区别?


13

从Ubuntu 14.04开始,至少有三个rename命令:

  1. renameutil-linux软件包提供的信息,请参见man named.ul
  2. renameperl包提供,请参见man姓
  3. renamerename软件包提供的信息,请参见man file-rename

问题:

  • 这些命令之间到底有什么区别?
  • 为什么会有多个使用相同名称提供不同命令的软件包–我想这不是偶然的,不是吗?
  • 那岂不是相当简单的perl包或者包括“全” rename命令或者不包括任何rename在所有的命令?为什么至少在Ubuntu 17.04之前,这种看似不完全的分裂会持续下去?

关于U&L的问题已经被问到了(稍后我会发现):
所有重命名是什么:预命名,重命名,文件重命名?

Answers:


8

为什么会有两个软件包使用相同的名称提供不同的命令(如果不是偶然的话)?

这并不稀奇。作者通常会选择他们想到的最简单的命令名称,因此,如果两个人编写一个命令来重命名文件,则他们俩都可能会为其命名rename。这是Debian Alternatives系统背后的原因之一-它允许提供相似名称命令的软件包共存,并允许一个软件包替换另一个。例如,有多个AWK实现- ,mawkoriginal-awkgawk尽管他们都称自己为AWK)。使用替代系统,您可以同时安装它们,并方便地在其中任何一个之间进行默认切换awk

在这种特定情况下,prename来自Perl源代码。Debian软件包的维护者最初rename是Perl,然后切换到替代系统,以适应renamefrom util-linux。然后有人renameFile-Rename Perl模块中编写了Perl的改进版本,然后将其添加为另一个替代方案。但这还不是唯一用于重命名文件的Perl模块。

那岂不是相当简单的perl包或者包括“全” rename命令或者不包括任何rename在所有的命令?为什么至少在Ubuntu 17.04之前,这种看似不完全的分裂会持续下去?

有关这种情况的演变,请参见Debian错误#735134。Debian维护人员通常在做一些大胆的事情时喜欢使用至少一个发行版,例如用另一个发行版代替一个工作指令。prename留给杰西(Jessie)留,现在因破坏而被移走。此外,rename由于rename.ul太不兼容了,因此看起来将不再处于替代系统之内。rename会公正的file-rename

由于Ubuntu通常会从Debian中获取打包更改rename,因此Ubuntu迟早可能会在18.04中获取Debian中发生的情况。17.10似乎为时已晚。

这些命令之间到底有什么区别?

从根本上说,无论是prenamefile-rename运行Perl表达式来重命名文件。file-rename只是积极维护并支持更多选择。renameutil-linux作品完全不同,具有自己的模式规则。


man prename17.10开始,看起来17.10实际上file-rename代替了prename。与18.04相同。
wjandrea
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.