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-файлами, датой и временем, выставлять права доступа и пр.

Читайте также:  Настройка cron astra linux

Поэтому, если надобность в массовоем переименовании файлов возникает у вас постоянно, то могу смело рекомендовать 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

mv rename linux

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

Переименование командой mv

Команда mv (от слова move) используется для переименования или перемещения файлов и директорий из командной строки.

Синтаксис команды mv очень простой:

источник — файл(ы) или директория, которую необходимо переместить или переименовать.
назначение — файл или директория, в которую будет перемещен источник .

Читайте также:  File extension list in linux

Основные опции:
-f — перезаписывать существующие файлы.
-n — не перезаписывать существующие файлы.
-i — выдавать запрос на перезапись существующих файлов.
-u — не перемещать файлы, которые уже существуют, если существующие файлы новее (время модификации новее).
-v — выводить имя каждого файла перед его переносом.

Как задавать имена файлов и директорий для переименования:

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

Переименование файла

Переименование файла myfile1.dat в файл myfile2.dat:

Переименование файла с указанием пути до файла:

mv /home/pingvinus/myfile1.dat /home/pingvinus/myfile2.dat

Переименование директории

Переименование директории /home/pingvinus/mydir1 в директорию /home/pingvinus/mydir2 . Справедливо, если /home/pingvinus/mydir2 не существует.

mv /home/pingvinus/mydir1 /home/pingvinus/mydir2

Если /home/pingvinus/mydir2 существует, то, выполнив команду:

mv /home/pingvinus/mydir1 /home/pingvinus/mydir2

директория mydir1 будет перемещена внутрь директории /home/pingvinus/mydir2 . То есть mydir1 будет в результате находиться по адресу /home/pingvinus/mydir2/mydir1 .

Переименование и перемещение

Если в качестве файла назначения указан новый путь и новое имя файла, то файл будет перемещен и переименован. Например, следующая команда перемещает файл myfile1.dat в директорию /home/pingvinus/dir и переименовывает его в myfile2.dat :

mv /home/pingvinus/myfile1.dat /home/pingvinus/dir/myfile2.dat

Переименование командой rename

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

Если вдруг в вашем дистрибутиве нет команды rename , то ее можно установить, выполнив (выберите соответствующую команду для вашего дистрибутива):

sudo apt install rename sudo yum install prename yaourt -S perl-rename

старое_имя — регулярное выражение или часть имени файла, которое нужно заменить на новое_имя .
новое_имя — задает результирующее имя файла (может быть регулярным выражением).

Основные опции:
-f — перезаписывать существующие файлы.
-n — вывести список файлов, которые будут переименованы и их новые имена, но не выполнять переименование.
-v — вывести список обработанных файлов.

Проще всего понять, как пользоваться данной командой, на примерах.

Изменение расширения файлов

Массово изменить расширение .html на .php у всех html-файлов.

Читайте также:  Test serial ports linux

По умолчанию rename не перезаписывает существующие файлы. Чтобы существующие файлы перезаписывались, используется опция -f :

Замена пробелов на подчеркивание

Заменить все символы пробелов в имени файлов на символ подчеркивания:

Конвертация имен файлов в строчные буквы

Конвертация имен файлов в прописные буквы

Показать, что именно будет переименовано, но не переименовывать

Чтобы избежать ошибок при переименовании файлов, особенно при использовании сложных регулярных выражений, можно сначала вывести список того, что будет переименовано, но не запускать само переименование. Для этого служит опция -n .

Например, мы хотим изменить расширение у файлов с .jpeg на .jpg . Используем опцию -n , чтобы просто вывести какие файлы будут переименованы:

Полное описание команд mv и rename можно получить, выполнив в терминале команды:

Массовое переименование с использованием программ

Для массового переименования файлов можно воспользоваться программами:

Источник

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, если стоят соответствующие утилиты.

Источник

Оцените статью
Adblock
detector