所有重命名是什么:预命名,重命名,文件重命名?


24

在我的Debian系统上(我的LMDE系统,但足够接近),我至少有3个不同的rename程序:

  • /usr/local/bin/rename:这是由Tom Christiansen编写的Perl脚本。奇怪的是,我似乎找不到安装它的软件包:

    $ dpkg -S /usr/local/bin/rename 
    dpkg-query: no path found matching pattern /usr/local/bin/rename
  • /usr/bin/prename:另一个由Robin Barker编写的perl脚本,它是perl软件包的一部分:

    $ dpkg -S /usr/bin/prename
    perl: /usr/bin/prename
  • /usr/bin/file-rename:另一个Perl脚本,没有明确的作者信息,但同时提到了Larry(可能是Wall)和Robin(可能是Barker)。该rename软件包由软件包安装,并且也链接到/usr/bin/rename

    $ dpkg -S /usr/bin/file-rename
    rename: /usr/bin/file-rename

我也有rename.ulutil-linux但现在让我们忽略它。这3个Perl脚本之间有什么区别?它们似乎都具有相同的手册页man renameman file-rename并且man prename都给我相同的页面。

我可以自己遍历这些脚本并尝试了解它们之间的差异,但这并不是不重要的,我希望有人能知道每个人都具有的其他人没有的功能。奖励点,用于解释为什么Debian世界需要三个独立的Perl重命名脚本。


比那更糟!RHEL将完全不同的二进制文件作为util-linux-ng软件包的一部分提供。%file =重命名/ usr / bin / rename:ELF 64位LSB可执行文件,x86-64,版本1(SYSV),...
感激2015年

@thrig我将您的答案转换为评论,因为它实际上并未回答问题(这些脚本之间的区别是什么,以及为什么有这么多的perl版本)。你说的是renameutil-linuxrename.ul在Debian和rename在RedHat系统。我在问题的倒数第二段提到了这一点。
terdon

update-alternatives --display rename为您显示什么?想知道它是否是后安装替代方案的一部分。
杰夫·谢勒

@JeffSchaller不,它来自Unicode :: Tussle。它的作者(tchrist)活跃于SE,他在聊天中向我解释了它。
terdon

4
相关的。为了记录在案,上面提到的带有我的名字的重命名脚本支持一些对我有用的选项,例如重写符号链接目标而不是正确的路径名,从管道读取文件名列表以及该列表中以空值终止的路径名-加上“正常” -v-i选项。这是一个古老的,古老的脚本,在用法消息之外没有适当的文档,但这是en-masse文件名重写的标准工具。无论走到哪里,它都是我总是想要的两个或三个脚本之一。
tchrist

Answers:


16

不知道这是否应该是评论,但这只是部分答案-

http://lists.alioth.debian.org/pipermail/perl-maintainers/2014-February/004113.html

似乎是一团糟的种子。特别:

总结一下:多年来,perl软件包都提供了/ usr / bin / rename,这是在perl中实现的独立实用程序。问题是我们不想再从perl包中提供该实用程序,因为它是在debian /中本地添加的,并且没有得到维护。维护的版本可作为单独的软件包libfile-rename-perl获得。

libfile-rename-perl现在上述被替换rename

$ apt-cache show rename | head
Package: rename
Version: 0.20-3
Installed-Size: 69
Maintainer: Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>
Architecture: all
Replaces: libfile-rename-perl
Provides: libfile-rename-perl
Depends: perl
Conflicts: libfile-rename-perl
Description-en: Perl extension for renaming multiple files

因此,Perl有自己的东西rename,Debian并没有维护它,而是提供了/usr/bin/prename。Debian开发人员维护一个rename程序包(以前称为libfile-rename-perl),该程序包提供/usr/bin/rename:一个符号链接,/etc/alternatives/rename其本身就是/usr/bin/file-rename脚本的符号链接。

Tom Christiansen的脚本与Perl的Unicode::Tussle模块捆绑在一起。您可能已经安装了它,这就是所提供的/usr/local/bin/rename

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.