Есть ли способ переименовать все файлы в каталоге в нижний регистр | верхний регистр?
Я ищу команду oneliner .
Я любил TotalCommander's alt+f7
, теперь мне нужна эта функциональность в терминале
command-line
rename
batch-rename
Унамата Санатарай
источник
источник
mv
чтобы увидеть, что делается; Возможно, вы не захотите передавать «-f», потому что это может привести к сбою существующих файловЕсть более элегантная и общая утилита под названием
prename
.Написанный Ларри Уоллом, он поставляется вместе с ним,
perl
так что, скорее всего, он уже доступен в вашей системе, поскольку/usr/bin/prename
(если у вас есть альтернативы настройки, он также может быть доступен в виде/usr/bin/rename
символической ссылки через / etc / alternativesprename
)Используя его, вы можете переименовать несколько файлов в одной команде, предоставив любое выражение perl (включая, но не ограничиваясь, подстановку
s///
или транслитерацию символовtr///
):Примеры:
И так далее.
Еще одна приятная вещь в prename - это то, что она защищает вас в случае переименования файла в существующее имя файла.
man prename
Больше подробностей.источник
С помощью
find
За
find
-name
поставить свой шаблон.-maxdepth 0
: Только текущий каталог.За
rename
-n, -nono
: Никаких действий: печатать имена файлов, которые нужно переименовать, но не переименовывать.y/source/dest/
: Транслитерация символов в пространстве образца, которые появляются в источнике, в соответствующий символ в dest.источник