Почему два пакета предоставляют разные команды под одним и тем же именем (если не случайно)?
Это не необычно. Авторы обычно выбирают самое простое имя команды, о котором они думают, поэтому, если два человека напишут команду для переименования файлов, вероятно, они оба назовут ее rename
. Это одна из причин, лежащих в основе системы Альтернатив Debian - она позволяет пакетам, предоставляющим команды с одинаковыми именами, сосуществовать и заменять один пакет другим. Например, существует множество реализаций AWK - mawk
, original-awk
, gawk
(хотя все они относятся к себе , как AWK). С системой альтернатив вы можете установить их все одновременно и удобно переключаться между ними по умолчанию awk
.
В этом конкретном случае prename
исходит из исходного кода Perl. Первоначально сопровождающие пакетов Debian изначально были rename
Perl, а затем переключились на альтернативную систему, чтобы приспособить их rename
от util-linux
. Затем кто-то написал улучшенную версию Perl rename
в модуле File-Rename Perl , который был добавлен в качестве другой альтернативы. Но это даже не единственный Perl-модуль для переименования файлов.
Разве не было бы достаточно просто, чтобы perl
пакет включал «полную» rename
команду или вообще не включал какую-либо rename
команду? Почему этот, казалось бы, неполный раскол сохранился как минимум до Ubuntu 17.04?
Смотрите Debian bug # 735134, чтобы узнать, как развивалась эта ситуация. Сопровождающие Debian обычно предпочитают делать хотя бы один выпуск, когда делают что-то радикальное, например, заменяют рабочую команду другой. prename
был сохранен для Джесси, и теперь был удален для бастера. Кроме того, похоже rename
, больше не будет под альтернативной системы, так rename.ul
как он слишком несовместим. rename
будет просто file-rename
.
Поскольку Ubuntu обычно принимает изменения пакетов в Debian, то, что происходит rename
в Debian, рано или поздно будет обнаружено Ubuntu, вероятно, в 18.04. Кажется, уже слишком поздно 17.10.
Какие именно различия между этими командами?
По сути, оба prename
и file-rename
запустить выражения Perl для переименования файлов. file-rename
просто активно поддерживается и поддерживает больше опций. rename
Из util-linux
произведений совершенно иначе, есть свои правила для шаблонов.
man prename
на 17.10 , похоже, что 17.10 на самом деле взялиfile-rename
вместоprename
. То же самое для 18.04 .