为什么 Debian/Ubuntu 上的重命名实用程序与其他发行版(如 CentOS)上的重命名实用程序不同?

Jac*_*hie 7 debian centos utilities rename distributions

在 CentOS 上,rename 命令使用两个简单的字符串,from以及to.

rename from to file...
Run Code Online (Sandbox Code Playgroud)

而在 Debian/Ubuntu 上,它使用 perl 风格的正则表达式。

rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]
Run Code Online (Sandbox Code Playgroud)

为什么此实用程序因分布而异?是否有关于哪些发行版发布或默认使用该实用程序的哪些版本的参考?

Gil*_*il' 13

历史。一个rename命令有两条历史行,具有相同的基本目的但完全不同的语法和功能:

  • util-linux包中的rename命令。它出现在版本 2.10e 中,程序日期为 2000-01-01。
  • 一个 perl 脚本,作为示例程序随Perl一起分发。Debian 更新日志记录了它在 1999 年 6 月被添加到 Debian(程序本身至少可以追溯到 1992 年)。另一个向后兼容的版本带有Unicode::Tussle(从 Debian jessie 开始,它被称为file-rename,并在rename包中提供;其他一些发行版称为prename)。

一方面,util-linux 是一个核心包,因此它比 Debian 心血来潮中包含的 Perl 示例脚本更标准。另一方面,Perl 脚本首先出现在 Debian 中。到目前为止,Debian 选择保持与过去 Debian 发行版的兼容性,而不是与其他发行版保持一致。源自 Debian 的发行版(Ubuntu、Mint、elementary 等)在这一点上倾向于遵循 Debian。

其他发行版rename在添加到 util-linux 时没有命令,因此它们自然包含 util-linux 版本。