Яка різниця між різними командами "перейменувати"?


13

Оскільки Ubuntu 14.04 існує щонайменше три renameкоманди:

  1. renameнадається util-linuxпакетом, див. man rename.ul
  2. renameнадані perlпакетом, див. прізвище людини
  3. renameнаданий renameпакетом, див. перейменування файлу man

Запитання:

  • Які саме відмінності між цими командами?
  • Як же існує декілька пакетів, що надають різні команди, використовуючи те саме ім’я - я вважаю, це не випадковість, чи це?
  • Чи не було б досить простим perlпакетом включити команду "full" renameабо взагалі не включити будь-яку renameкоманду? Чому цей, здавалося б, незавершений розкол витриманий принаймні до Ubuntu 17.04?

Це питання вже задавались у U&L (як я дізнався пізніше):
Що з усіма перейменами: прізвище, перейменувати, перейменувати файл?

Відповіді:


8

Чому є два пакети, що надають різні команди, використовуючи те саме ім’я (якщо не випадково)?

Це не незвично. Зазвичай автори вибирають найпростішу назву команди, яку вони думають, тому, якщо двоє людей напишуть команду для перейменування файлів, швидше за все, вони обидва її назвуть rename. Це одна з причин системи Debian Alternatives - вона дозволяє пакетам, що надають команди з аналогічним назвою, співіснувати, а один пакет замінювати інший. Наприклад, існує безліч реалізацій AWK - mawk, original-awk, gawk(хоча всі вони відносяться до себе , як AWK). За допомогою системи альтернатив ви можете встановити їх одночасно і зручно перемикатися між будь-якими з них за замовчуванням awk.

У цьому конкретному випадку prenameпоходить від вихідного коду Perl. Спочатку обслуговуючими пакетами Debian були renamePerl, а потім перейшли на систему альтернатив для розміщення renameз util-linux. Потім хтось написав вдосконалену версію Perl renameу модулі File-Rename Perl , яку потім додали як іншу альтернативу. Але це навіть не єдиний модуль Perl для перейменування файлів.

Чи не було б досить простим perlпакетом включити команду "full" renameабо взагалі не включити будь-яку renameкоманду? Чому цей, здавалося б, незавершений розкол витриманий принаймні до Ubuntu 17.04?

Дивіться помилку Debian # 735134 про те, як розвивалася ця ситуація. Обслуговувачі Debian, як правило, воліють принаймні один випуск, коли роблять щось кардинальне, наприклад, замінюючи робочу команду іншою. prenameутримувались для джессі, а тепер її вилучили для перепилки. Крім того, схоже rename, більше не буде в системі альтернатив, оскільки rename.ulце занадто несумісно. renameбуде справедливим file-rename.

Оскільки Ubuntu зазвичай приймає зміни упаковки від Debian, renameUbuntu рано чи пізно вибирає те, що відбувається в Debian, можливо, в 18.04. Здається, вже пізно до 17.10.

Які саме відмінності між цими командами?

По суті, обидва prenameі file-renameвиконуйте вирази Perl для перейменування файлів. file-renameпросто активно підтримується і підтримує більше варіантів. renameз util-linuxтворів зовсім інакше, має свої правила для шаблонів.


З man prename17.10 , схоже, 17.10 насправді забрали file-renameзамість prename. Те саме для 18.04 .
wjandrea
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.