Rename - утиліта командного рядка для перейменування великої кількості файлів в linux

Бібліотека сайту rus-linux.net

Для перейменування одиничного файлу в Linux ми часто використовуємо команду "mv". Однак перейменування таким способом великої кількості файлів займе багато часу.
У Linux є дуже потужна вбудована утиліта rename, яка використовується для періменовиванія великої кількості файлів, зміни регістра в їхніх назвах за допомогою виразів на perl.

Команда "rename" - це частина скрипта Perl, розташованого в "/ usr / bin /" практично у всіх дистрибутивах Linux. Ви можете використовувати команду "which", щоб подивитися, де знаходиться команда rename.

Базовий синтаксис команди rename

Команда rename, крім обов'язкового вираження perl, має кілька опціональних аргументів, які дозволяють більш тонко налаштувати її роботу.

-v: виводити імена успішно перейменованих файлів.
-n: показати, які файли будуть перейменовані.
-f: примусово перезаписати існуючі файли.
perlexpr: вираз Perl.

Для кращого розуміння роботи цієї утиліти ми розглянемо кілька практичних прикладів

1. Простий приклад використання rename

Припустимо, у вас є купа файлів з розширенням ".html", і ви хочете змінити їх розширення на ".php". Спочатку я виводжу їх список за допомогою команди "ls -l":

Для пакетного перейменування я використовую команду "rename" з perl-виразом, як показано нижче.

Наведена вище команда має два аргументи.
Перший аргумент, це perl-вираз, яке підставляє .php замість .html.
Другий аргумент вказує, що цю підстановку необхідно провести для всіх файлів з розширенням .html.
Перевіримо результат виконання команди:

2. Перевірка змін перед запуском команди rename

3. Показ виведення Rename

Ми бачимо, що команда rename не виводить ніякої інформації про зроблені нею зміни. Тому, якщо ви хочете бачити таку інформацію, для виведення докладних відомостей про всі зроблені зміни необхідно використовувати опцію "-v".

4. Перетворення нижнього регістра в верхній і навпаки

Наприклад, у мене є такі файли.

Для пакетного зміни регістра в назвах файлів з нижнього на верхній використовується наступна команда з виразом perl:

Перевіримо результат виконання команди:

Схожим чином можна зробити зворотне перетворення - з верхнього регист в нижній.

5. Як перезаписати існуючих файлів

Якщо ви хочете примусово перезаписати існуючі файли, використовуйте опцію "-f", як показано нижче.

Для отримання більш докладної інформації про команду rename можна почитати її man-сторінку, ввівши в терміналі "man rename".
Команда rename дуже корисна, якщо вам доводиться мати справу з пакетною обробкою файлів в командному рядку.