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

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

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

  1. rename包中提供util-linux,请参阅重命名工具
  2. rename包中提供perl,请参阅男人名字
  3. rename包中提供rename,请参阅手动文件重命名

问题:

  • 这些命令之间到底有什么区别?
  • 为什么会有多个包使用相同的名称提供不同的命令?我想这不是偶然的,不是吗?
  • perl软件包要么包含“完整”rename命令,要么根本不包含任何命令,这不是很简单吗rename?为什么这种看似不完整的分裂至少持续到 Ubuntu 17.04?

这个问题已经在 U&L 上被问过了(我后来发现):
所有重命名的含义是什么:预命名、重命名、文件重命名?

答案1

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

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

在这个特定情况下,prename来自 Perl 源代码。Debian 软件包维护者最初是renamePerl 维护者,后来切换到替代系统,以适应来自renameutil-linux后来有人rename文件重命名 Perl 模块,然后作为另一种选择添加。但这甚至不是用于重命名文件的唯一 Perl 模块。

perl软件包要么包含“完整”rename命令,要么根本不包含任何命令,这不是很简单吗rename?为什么这种看似不完整的分裂至少持续到 Ubuntu 17.04?

Debian 错误 #735134了解这种情况是如何演变的。Debian 维护者通常倾向于在进行一些激烈的改变时至少发布一个版本,例如用另一个命令替换一个工作命令。保留了 jessie 的版本,现在已从 buster 中删除。此外,由于不兼容,prename它似乎rename将不再属于替代系统。将只是。rename.ulrenamefile-rename

由于 Ubuntu 通常会从 Debian 中获取打包更改,因此renameDebian 中发生的变化迟早也会被 Ubuntu 所采用,可能是在 18.04 中。对于 17.10 来说似乎太晚了。

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

从根本上来说,prename和都file-rename运行 Perl 表达式来重命名文件。file-rename只是积极维护并支持更多选项。而renamefrom 的util-linux工作方式完全不同,有自己的模式规则。

相关内容