- Три способа массового переименования файлов в Linux
- 1️⃣ Использование проводника файлов
- 2️⃣ Использование программы KRename
- 3️⃣ Использование команды rename
- 🏁 Подведем итоги
- Как переименовать файл Linux
- Как переименовать файл в Linux с помощью mv
- Переименование файлов Linux с помощью rename
- Переименование файлов в pyRenamer
- Выводы
- Переименовать все файлы linux
Три способа массового переименования файлов в 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 к использованию.
3️⃣ Использование команды rename
Этот способ уж совсем экзотический, но обойтись без терминала просто-напросто нельзя. Утилита rename не всегда поставляется в дистрибутивы Linux сразу после установки, потому ее нужно установить дополнительно. К тому же, в различных дистрибутивах название утилиты разное, например в Archlinux оно звучит, как perl-rename, потому и устанавливается соответствующей строкой в терминале:
sudo pacman -S perl-rename
После установки открываем терминал, переходим в директорию, где хранятся файлы для переименования и вводим команду:
perl-rename ‘s/.*/»file».++$i.».txt»/e’ *.txt
После нажатия кнопки Enter все файлы в формате TXT будут переименованы согласно указанному шаблону.
Повторюсь, что способ подойдет далеко не всем, но тем не менее, он есть, а значит им можно пользоваться.
🏁 Подведем итоги
Не то, чтобы задачи по массовому переименованию файлов возникают у меня постоянно, но если она возникнет, то воспользуюсь, скорее всего, первым способом. Если бы такие задачи прилетали постоянно, то настроил Krename на некие часто повторяемые шаблоны и менял бы только местоположение с файлами на переименование. В ситуации, когда под рукой не оказывается графического интерфейса, можно воспользоваться третьим способом.
Возможно, что читатели и подписчики расскажут о иных им известных способах массового переименования файлов в Linux. Да, кстати, пользователи Windows, напишите и вы, какие способы доступны для решения таких задач, так как насколько помню, системный файловый менеджер в массовое переименование не может от слова совсем.
Когда-то на канале выходил цикл статей, посвященных работе с файлами и папками в Linux. Ссылки на эти статьи оставлю ниже.
Как переименовать файл Linux
Переименование файла linux — очень простая операция, но для новичков в Linux эта задача может оказаться сложной. Также здесь есть несколько нюансов и возможностей, которые желательно знать уже опытным пользователям, например, массовое переименование. В графическом интерфейсе все делается очень просто, но настоящую гибкость дает терминал.
В этой статье мы рассмотрим как переименовать файл в Linux с помощью терминала, рассмотрим такие возможности, как массовое пакетное переименование файлов, а также регулярные выражения.
Как переименовать файл в Linux с помощью mv
В Linux существует замечательная стандартная утилита mv, которая предназначена для перемещения файлов. Но по своей сути перемещение — это то же самое, что и переименование файла linux, если выполняется в одной папке. Давайте сначала рассмотрим синтаксис этой команды:
$ mv опции файл-источник файл-приемник
Теперь рассмотрим основные опции утилиты, которые могут вам понадобиться:
- -f — заменять файл, если он уже существует;
- -i — спрашивать, нужно ли заменять существующие файлы;
- -n — не заменять существующие файлы;
- -u — заменять файл только если он был изменен;
- -v — вывести список обработанных файлов;
Чтобы переименовать файл linux достаточно вызвать утилиту без дополнительных опций. Просто передав ей имя нужного файла и новое имя:
Как видите, файл был переименован. Вы также можете использовать полный путь к файлу или переместить его в другую папку:
mv /home/sergiy/test/newfile /home/sergiy/test/file1
Обратите внимание, что у вас должны быть права на запись в ту папку, в которой вы собираетесь переименовывать файлы. Если папка принадлежит другому пользователю, возможно, нужно будет запускать программу через sudo. Но в таком случае лучше запускать с опцией -i, чтобы случайно ничего не удалить.
Переименование файлов Linux с помощью rename
В Linux есть еще одна команда, которая позволяет переименовать файл. Это rename. Она специально разработана для этой задачи, поэтому поддерживает такие вещи, как массовое переименование файлов linux и использование регулярных выражений. Синтаксис утилиты тоже сложнее:
$ rename опции ‘s/ старое_имя / новое_имя ‘ файлы
$ rename опции старое_имя новое_имя файлы
В качестве старого имени указывается регулярное выражение или часть имени которую нужно изменить, новое имя указывает на что нужно заменить. Файлы — те, которые нужно обработать, для выбора файлов можно использовать символы подставки, такие как * или ?.
- -v — вывести список обработанных файлов;
- -n — тестовый режим, на самом деле никакие действия выполнены не будут;
- -f — принудительно перезаписывать существующие файлы;
Например, переименуем все htm файлы из текущей папки в .html:
Символ звездочки означает, что переименование файлов linux будет выполнено для всех файлов в папке. В регулярных выражениях могут применяться дополнительные модификаторы:
- g (Global) — применять ко всем найденным вхождениям;
- i (Case Censitive) — не учитывать регистр.
Модификаторы размещаются в конце регулярного выражения, перед закрывающей кавычкой. Перед тем, как использовать такую конструкцию, желательно ее проверить, чтобы убедиться, что вы не допустили нигде ошибок, тут на помощь приходит опция -n. Заменим все вхождения DSC на photo в именах наших фотографий:
rename -n ‘s/DSC/photo/gi’ *.jpeg
Будут обработаны DSC, DsC и даже dsc, все варианты. Поскольку использовалась опция -n, то утилита только выведет имена изображений, которые будут изменены.
Можно использовать не только обычную замену, но и полноценные регулярные выражения чтобы выполнить пакетное переименование файлов linux, например, переделаем все имена в нижний регистр:
Из этого примера мы видим, что даже если такой файл уже существует, то он перезаписан по умолчанию не будет. Не забывайте использовать опцию -n чтобы ничего случайно не повредить.
Переименование файлов в pyRenamer
Если вы не любите использовать терминал, но вам нужно массовое переименование файлов Linux, то вам понравится утилита pyrenamer. Это графическая программа и все действия здесь выполняются в несколько щелчков мыши. Вы можете установить ее из официальных репозиториев:
sudo apt install pyrenamer
В окне программы вы можете видеть дерево файловой системы, центральную часть окна, где отображаются файлы, которые будут изменены, а также панель для указания параметров переименования.
Вы можете удалять или добавлять символы, переводить регистр, автоматически удалять пробелы и подчеркивания. У программы есть подсказки, чтобы сделать ее еще проще:
Опытным пользователям понравится возможность pyRenamer для переименования мультимедийных файлов из их метаданных. Кроме того, вы можете переименовать один файл если это нужно. Эта утилита полностью реализует функциональность mv и remove в графическом интерфейсе.
Выводы
В этой статье мы рассмотрели как переименовать файл в консоли linux. Конечно, есть и другие способы, например, написать скрипт, или использовать файловые менеджеры. А как вы выполняете сложные операции по переименованию? Напишите в комментариях!
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Переименовать все файлы linux
Итак, у нас есть куча файлов, среди которых надо навести порядок. Для этого сделаем групповое переименование.
Утилита rename входит в стандартную поставку Debian, так что начнем с нее.
rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]
-v отобразить имена успешно переименованных файлов.
-n отобразить список файлов, которые будут переименованы, без переименования в итерации.
-f перезаписать уже существующие файлы.
perlexpr — шаблон для переименования.
Для того, чтобы выполнить переименование файлов согласно условию, выполним команду:
Рассмотрим perlexr подробнее:
s=указывает, что требуется замещение.
/.sh/=Строка, которую будем замещать.
/.sh.bak/ = строка, на которую будем замещать
g=global, будем замещать все найденные вхождения.
С помощью rename можно быстро изменить регистр файлов. Например поднимем регистр файлов из примера:
mmv — программа для массового перемещения, переименования, копирования, объединения файлов.
По умолчанию она не включена в состав Debian. Поставим ее:
Наша задача решается одной строкой:
Теперь решим нашу задачу стандартной командой mv. Для этого нам прийдется немного попрограммировать в bash.
for i in *.sh;
do mv $i `basename $i sh`sh.bak;
done
Попробуем усложить задачу. Например у нас есть куча файлов JPG:
1234234.jpg
e456567657.jpg
234df34.jpg
…
Мы хотим привести их к следующему виду:
file1.jpg
file2.jpg
file3.jpg
…
j=0;
for i in *.jpg;
do let j+=1;
mv $i file$j.jpg ;
done
В любимом многими mc, процесс переименования по маске выполняется просто и непринужденно в два действия.
1. Через + выбираем файлы по маске *.sh
2. Нажимаем F6 и в destination указываем *.sh.bak
Все примеры, приведенные выше, так или иначе работают во всех Linux, BSD, Mac OS, если стоят соответствующие утилиты.