在 CentOS 上,重命名命令使用两个简单的字符串,from
和to
。
rename from to file...
而在 Debian/Ubuntu 上它使用 perl 风格的正则表达式。
rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]
为什么这个实用程序因分布而异?是否有关于哪些发行版附带或默认使用哪些版本的实用程序的参考?
答案1
历史。历史上有两条命令rename
,具有相同的基本目的,但语法和功能完全不同:
- 该
rename
命令在实用程序Linux软件包。它出现在版本 2.10e 中,程序的日期为 2000-01-01。 - 一个 perl 脚本,随珀尔作为示例程序。 Debian 变更日志记录了它于 1999 年 6 月被添加到 Debian(该程序本身至少可以追溯到 1992 年)。另一个向后兼容的版本附带Unicode::争斗(从 Debian jessie 开始,它被称为
file-rename
,并在rename
包裹;其他一些发行版称之为prename
)。
一方面,util-linux 是一个核心包,因此它比 Debian 突发奇想中包含的 Perl 示例脚本更标准。另一方面,Perl 脚本首先出现在 Debian 中。到目前为止,Debian 选择保持与过去 Debian 版本的兼容性,而不是与其他发行版保持一致。源自 Debian 的发行版(Ubuntu、Mint、elementary 等)在这一点上倾向于遵循 Debian。
rename
其他发行版在添加 util-linux 时并没有命令,因此自然包含 util-linux 版本。