В чем разница между различными командами переименования?
Начиная с Ubuntu 14.04 существует как минимум три rename
команды:
rename
предоставленоutil-linux
посмотри, см. man rename.ulrename
предоставленоperl
пакет, см. имя человекаrename
предоставленоrename
пакет, смотрите man file-rename
Вопросы:
- Какие именно различия между этими командами?
- Как получилось, что несколько пакетов предоставляют разные команды с одним и тем же именем - я полагаю, это не случайность, или это так?
- Разве это не было бы довольно просто для
perl
Пакет, включающий "полный"rename
командовать или не включать какие-либоrename
команда вообще? Почему этот, казалось бы, неполный раскол сохранился, по крайней мере, до Ubuntu 17.04?
Этот вопрос уже задавался на U&L (как я узнал позже):
Что со всеми переименованиями: prename, rename, file-rename?
1 ответ
Почему два пакета предоставляют разные команды с одним и тем же именем (если не случайно)?
Это не необычно. Авторы обычно выбирают самое простое имя команды, о котором они думают, поэтому, если два человека напишут команду для переименования файлов, вероятно, они оба назовут ее rename
, Это одна из причин, лежащих в основе системы Альтернатив Debian - она позволяет пакетам, предоставляющим команды с одинаковыми именами, сосуществовать и заменять один пакет другим. Например, есть несколько реализаций AWK - mawk
, original-awk
, gawk
(хотя все они называют себя awk). С системой альтернатив вы можете установить их все одновременно и удобно переключаться между ними по умолчанию awk
,
В этом конкретном случае prename
исходит из исходного кода Perl. Сопровождающие пакета Debian изначально имели rename
быть Perl, а затем переключился на альтернативную систему, чтобы приспособить rename
от util-linux
, Тогда кто-то написал улучшенную версию Perl's rename
в модуле Perl File-Rename, который затем был добавлен в качестве другой альтернативы. Но это даже не единственный 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
работает совершенно по-другому, имеет свои правила для шаблонов.