Що з усіма перейменами: прізвище, перейменування, перейменування файлів?


24

У моїй системі 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.


Гірше за це! RHEL поставляє зовсім інший бінарний файл як частину util-linux-ngпакету. % file = перейменувати / usr / bin / rename: ELF 64-бітний LSB виконуваний файл, x86-64, версія 1 (SYSV), ...
трид

@thrig Я перетворив вашу відповідь на коментар, оскільки насправді він не відповідав на питання (яка різниця між цими сценаріями і чому існує стільки версій perl). Ви говорите про те, renameвід util-linuxчого є rename.ulна Debian та renameна системах RedHat. Я згадую це в передостанньому абзаці свого запитання.
terdon

що update-alternatives --display renameпоказує для вас? Цікаво, чи це частина після встановленої альтернативи.
Джефф Шаллер

@JeffSchaller ні, він походить від Unicode :: Tussle . Її автор (tchrist) активний у SE, і він мені це пояснив у чаті.
terdon

4
Пов'язані . Для запису сценарій перейменування з моїм іменем, яке ви згадуєте, підтримує деякі корисні для мене варіанти, такі як перезапис цілей символьних посилань замість власних імен шляхів, зчитування списку імен файлів з труб та скасування нульових імен у цьому списку - плюс “ нормально » -vта -iваріанти. Це старий, старий, старий сценарій без належної документації поза його повідомленням про використання, але це стандартний робочий коник для масових переписувань імені файлів. Це один із, можливо, двох-трьох сценаріїв, які я завжди хочу зі собою, незалежно від того, куди йти.
tchrist

Відповіді:


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 Devs підтримують renameпакет (мабуть, раніше відомий як libfile-rename-perl), який є пакетом, який забезпечує /usr/bin/rename: символьне посилання, /etc/alternatives/renameяке саме по собі є символьним посиланням на /usr/bin/file-renameсценарій.

Сценарій Тома Крістіансена в комплекті з Unicode::Tussleмодулем Perl . Ви, ймовірно, встановили його, і саме це забезпечено /usr/local/bin/rename.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.