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

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

Rename Command in Linux (Rename Multiple Files)

7 Января 2020 | Терминал

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

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

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

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


Установка rename 

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

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

  • Ubuntu и Debian

    sudo apt updatesudo 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.


    Комментарии

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

Загрузка комментариев...