В моей системе Debian (хорошо, в моей системе LMDE, но достаточно близко) у меня есть по крайней мере 3 разные rename
программы:
/usr/local/bin/rename
Это сценарий Perl, написанный Томом Кристиансеном. Как ни странно, я не могу найти, какой пакет установил его:$ dpkg -S /usr/local/bin/rename dpkg-query: no path found matching pattern /usr/local/bin/rename
/usr/bin/prename
: еще один скрипт на Perl, написанный Робином Баркером, он входит вperl
пакет:$ dpkg -S /usr/bin/prename perl: /usr/bin/prename
/usr/bin/file-rename
: еще один сценарий Perl, нет четкой информации об авторстве, но упоминаются и Ларри (предположительно Уолл) и Робин (предположительно Баркер). Этотrename
пакет устанавливается пакетом и также связан с/usr/bin/rename
:$ dpkg -S /usr/bin/file-rename rename: /usr/bin/file-rename
У меня тоже есть rename.ul
из , util-linux
но давайте игнорировать , что один на данный момент. В чем разница между этими 3 скриптами Perl? Кажется, все они имеют одну и ту же справочную страницу man rename
, man file-rename
и man prename
все дают мне одну и ту же страницу.
Я мог бы пройтись по самим сценариям и попытаться понять различия, но это не тривиально, и я надеюсь, что кто-то узнает, какие функции у каждого есть, а у других нет. Бонусные баллы за объяснение, почему миру Debian нужны три отдельных сценария переименования Perl.
util-linux-ng
пакета. % file = переименовать / usr / bin / rename: исполняемый 64-битный LSB ELF, x86-64, версия 1 (SYSV), ...rename
изutil-linux
которых находитсяrename.ul
на Debian иrename
на системах RedHat. Я упоминаю об этом в предпоследнем абзаце моего вопроса.update-alternatives --display rename
показывает для вас? Хотите знать, если это часть альтернативы после установки.-v
и-i
варианты. Это старый, старый, старый скрипт без надлежащей документации за пределами его сообщения об использовании, но это стандартная рабочая лошадка для массовых перезаписываний имен файлов. Это один из двух или трех сценариев, которые я всегда хочу со мной, независимо от того, куда я иду.Ответы:
Не уверен, что это должен быть комментарий, но это только частичный ответ -
http://lists.alioth.debian.org/pipermail/perl-maintainers/2014-February/004113.html
имеет то, что кажется семенами беспорядка. В частности:
libfile-rename-perl
Упоминалось выше, в настоящее время замененrename
:Итак, Perl имеет свой собственный,
rename
который не поддерживается Debian и предоставляет/usr/bin/prename
. Разработчики Debian поддерживаютrename
пакет (очевидно, ранее известный какlibfile-rename-perl
), который представляет собой пакет, который обеспечивает/usr/bin/rename
: символическую ссылку,/etc/alternatives/rename
которая сама является символической ссылкой на/usr/bin/file-rename
скрипт.Сценарий Тома Кристиансена связан с
Unicode::Tussle
модулем Perl . Вы, вероятно, установили его, и вот что предоставлено/usr/local/bin/rename
.источник