Найти тему

Три способа массового переименования файлов в Linux

Представим, что перед нами n-ое количество файлов, имеющих разные имена, которые необходимо враз переименовать по некоему шаблону, чтобы в последующем использовать каким-либо образом.

Папка с файлами для демонстрации
Папка с файлами для демонстрации

У меня есть 20 файлов, имеющих различные имена, которые нужно переименовать во что-то навроде file1, file2, file3... fileN. Расскажу ниже про три способа того, как это сделать в Linux.

1️⃣ Использование проводника файлов

Вполне ожидаемо, можно воспользоваться файловым менеджером, который позволяет осуществить массовое переименование в пару кликов мыши. В моем примере используется менеджер Dolphin, так как в качестве среды рабочего окружения стоит KDE Plasma, но думаю, что примерно так же это все будет работать в любом другом файловом менеджере (пользователи других DE, в случае чего, поправят в комментариях).

Выделяем все файлы, кликаем по ним ПКМ и в контекстном меню выбираем пункт «Переименовать» или нажимаем клавишу F2. В открывшемся окне выбираем новое имя, порядковый номер, с которого будет происходить нумерация, и жмем одноименную кнопку «Переименовать».

Как видим, способ простой донельзя и работает в любом дистрибутиве Linux со средой графического окружения. Ожидаемо, просто, понятно. Идем дальше!

2️⃣ Использование программы KRename

Это программа для массового переименования файлов в Linux. Она позволяет выполнять сложные операции по изменению имен файлов на основе регулярных выражений. KRename можно установить через менеджер пакетов вашего дистрибутива Linux. В моем случае, это Archlinux, но я пользуюсь для установки программ терминалом, потому ввел там следующую команду:

sudo pacman -S krename

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

Казалось бы, формат работы Krename не отличается от того, что делает файловый менеджер, да вдобавок и количество действий в первом способе меньше. Но дьявол, как известно, кроется в мелочах. Krename это полноценный комбайн для переименования всего и вся - в нее встроены не только гибкие настройки для того, чтобы задать итоговое имя файлов, но и различные модули, позволяющие осуществить транслитерацию имен, отдельно работать с музыкальными или PDF-файлами, датой и временем, выставлять права доступа и пр.

Вкладка с модулями в программе Krename
Вкладка с модулями в программе Krename

Поэтому, если надобность в массовоем переименовании файлов возникает у вас постоянно, то могу смело рекомендовать Krename к использованию.

3️⃣ Использование команды rename

Этот способ уж совсем экзотический, но обойтись без терминала просто-напросто нельзя. Утилита rename не всегда поставляется в дистрибутивы Linux сразу после установки, потому ее нужно установить дополнительно. К тому же, в различных дистрибутивах название утилиты разное, например в Archlinux оно звучит, как perl-rename, потому и устанавливается соответствующей строкой в терминале:

sudo pacman -S perl-rename

После установки открываем терминал, переходим в директорию, где хранятся файлы для переименования и вводим команду:

perl-rename 's/.*/"file".++$i.".txt"/e' *.txt

После нажатия кнопки Enter все файлы в формате TXT будут переименованы согласно указанному шаблону.

Массовое переименование файлов при помощи утилиты perl-rename
Массовое переименование файлов при помощи утилиты perl-rename

Повторюсь, что способ подойдет далеко не всем, но тем не менее, он есть, а значит им можно пользоваться.

🏁 Подведем итоги

Не то, чтобы задачи по массовому переименованию файлов возникают у меня постоянно, но если она возникнет, то воспользуюсь, скорее всего, первым способом. Если бы такие задачи прилетали постоянно, то настроил Krename на некие часто повторяемые шаблоны и менял бы только местоположение с файлами на переименование. В ситуации, когда под рукой не оказывается графического интерфейса, можно воспользоваться третьим способом.

Возможно, что читатели и подписчики расскажут о иных им известных способах массового переименования файлов в Linux. Да, кстати, пользователи Windows, напишите и вы, какие способы доступны для решения таких задач, так как насколько помню, системный файловый менеджер в массовое переименование не может от слова совсем.

Когда-то на канале выходил цикл статей, посвященных работе с файлами и папками в Linux. Ссылки на эти статьи оставлю ниже.