Переименовать команду в Linux (переименовать несколько файлов)

Переименование нескольких файлов и каталогов с помощью команды mv может быть утомительным процессом, поскольку включает в себя написание сложных команд с конвейерами, циклами и т. Д.

Вот здесь и пригодится команда rename . Он переименовывает данные файлы, заменяя выражение поиска в их имени указанной заменой.

В этом руководстве мы объясним, как использовать команду rename для пакетного переименования файлов.

Установка rename

Существует две версии команды rename с разным синтаксисом и функциями. Мы будем использовать Perl-версию команды rename .

Если эта версия не установлена в вашей системе, используйте диспетчер пакетов вашего дистрибутива Linux для ее установки:

  • Ubuntu и Debian

     sudo apt update sudo apt install rename
  • CentOS и Fedora

     sudo yum install prename
  • Arch Linux

     yay perl-rename

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

Ниже приводится общий синтаксис команды rename :

rename [OPTIONS] perlexpr files

Команда rename в основном представляет собой сценарий Perl. Он переименует указанные files соответствии с указанным регулярным выражением perlexpr . Вы можете прочитать о регулярных выражениях Perl здесь .

Например, следующая команда изменит расширение всех файлов .css на .scss :

rename 's/.css/.scss/' *.css

Поясним команду более подробно:

  • s/search_pattern/replacement/ — Оператор подстановки.
  • .css — шаблон поиска. Это первый аргумент в операторе подстановки. Команда rename будет искать этот шаблон в заданном имени файла и, если найдет, заменит его аргументом замены.
  • .scss — Замена. Второй аргумент в операторе подстановки.
  • *.css — все файлы с расширением «.css». Подстановочный знак ( * ) — это символ, используемый для обозначения нуля, одного или нескольких символов.

Перед запуском фактической команды и переименованием файлов и каталогов всегда рекомендуется использовать параметр -n , который выполнит «пробный запуск» и покажет вам, какие файлы будут переименованы:

rename -n 's/.css/.scss/' *.css

Результат будет выглядеть примерно так:

rename(file-0.css, file-0.scss)
rename(file-1.css, file-1.scss)
rename(file-2.css, file-2.scss)
rename(file-3.css, file-3.scss)
rename(file-4.css, file-4.scss)

По умолчанию команда rename не перезаписывает существующие файлы. Используйте параметр -f который сообщает rename чтобы перезаписать существующие файлы:

rename -f 's/.css/.scss/' *.css

Если вы хотите, чтобы при rename выводились имена файлов, которые были успешно переименованы, используйте параметр -v (подробный):

rename -v 's/.css/.scss/' *.css
file-0.css renamed as file-0.scss
file-1.css renamed as file-1.scss
file-2.css renamed as file-2.scss
file-3.css renamed as file-3.scss
file-4.css renamed as file-4.scss

rename Примеры

Ниже приведены несколько распространенных примеров использования команды переименования:

Замените пробелы в именах файлов символами подчеркивания

rename 'y/ /_/' *

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

rename 'y/A-Z/a-z/' *

Преобразование имен файлов в верхний регистр

rename 'y/a-z/A-Z/' *

Удалите .bak из имен файлов

rename 's/.bak$//' *.bak

Переименуйте .jpeg и .JPG в .jpg

rename 's/.jpe?g$/.jpg/i' *

Выводы

Команда rename позволяет вам переименовывать сразу несколько файлов, используя регулярные выражения Perl.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Оставьте комментарий