Пакетное переименование файлов в нижнем регистре

Есть ли способ переименовать все файлы в каталоге в нижний регистр | uppercase?

Я ищу команду для всех файлов .

I любил TotalCommander alt+f7, теперь мне нужна эта функциональность в терминале

1
задан 16 March 2017 в 06:44

2 ответа

Более элегантная и общая утилита называется prename.

Автор Larry Wall, она поставляется с perl, поэтому она скорее всего уже доступна в вашей системе как /usr/bin/prename (если вы альтернативные варианты установки также могут быть доступны как /usr/bin/rename, символически привязанные через / etc / alternatives к prename)

Используя его, вы можете переименовать несколько файлов в одну команду, предоставив любое выражение perl (включая, но не ограничиваясь к подстановке s/// или транслитерации символов tr///):

Примеры:

# Lowercase all *.JPG filenames:
prename tr/A-Z/a-z/ *.JPG

# Change any 'No' in a filename to a 'Yes':
prename s/No/Yes/g *No*

# increment first sequence of digits in a filename by 3:
prename 's/([0-9]+)/$1+3/e' *[0-9]*

# If a file contains 'aaa', append '.bak' to its name
prename 'if (/aaa/) {$_ .= ".bak"}'  *

И так далее.

Еще одна приятная вещь о пренаме - это то, что он защищает вас в случае переименования файла в существующее имя файла.

man prename для более подробной информации.

16
ответ дан 24 May 2018 в 23:25

Использование find

find . -name * -type f -exec rename 'y/A-Z/a-z/' '{}' \;

Для find

Конечно, после -name поместите свой шаблон. -maxdepth 0: Только текущий каталог.

Для rename

Конечно, после -name поместите свой шаблон. y/source/dest/: Транслитерайте символы в пространстве шаблонов, которые появляются в источнике к соответствующему символу в dest.
1
ответ дан 24 May 2018 в 23:25

Другие вопросы по тегам:

Похожие вопросы: