Как использовать команду Rename в Linux

12 set 2022 2 min di lettura
Как использовать команду Rename в Linux
Indice dei contenuti

Введение

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

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

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

Установить переименовать

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

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

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

sudo apt update
sudo apt install rename

CentOS и Федора

sudo yum install prename

Арх Линукс

yay perl-rename

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

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

rename [OPTIONS] perlexpr files

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

Например, следующая команда изменит расширение всех файлов .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 (verbose — подробный):

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 'y//_/' *

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

rename 'y/AZ/az/' *

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

rename 'y/az/AZ/' *

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

rename 's/\.bk$//' *.bk

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

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

Вывод

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

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.