Команда Rename в Linux (переименование файлов)

Переименование команды в Linux

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

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

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

Установка rename

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

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

  • Убунту и Дебиан

     sudo apt update sudo apt install rename
  • CentOS и Fedora

     sudo yum install prename
  • Арч Линукс

     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/AZ/az/' *

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

 rename 'y/az/AZ/' *

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

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

Переименуйте имена файлов .jpeg и .JPG в .jpg

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

Заключение

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

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

переименовать терминал

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *