Групповое переименование файлов в Linux

Иногда требуется навести порядок среди накачанных торрентов или просто прибраться в домашней директории, в виндах люди используют Windows Commander - двухпанельный файловый менеджер, в Linux нет особой необходимости в этом, переместить и переименовать пару файлов можно с помощью nautilus, а вот разобрать такое барахло как доктор хаус или прослушка вручную очень утомительно. Но можно воспользоваться утилитой rename, эта утилита предназначена для группового переименования файлов и её мощь заключается в привычных всем регулярных выражениях с синтаксисом поточного редактора sed

Например в директории имеются файлы

Доктор Хаус/s04$ ls

House.M.D.s04e01.rus.lostfilm.tv.ogv House.M.D.s04e02.rus.lostfilm.tv.ogv House.M.D.s04e03.rus.lostfilm.tv.ogv House.M.D.s04e04.rus.lostfilm.tv.ogv
House.M.D.s04e05.rus.lostfilm.tv.ogv House.M.D.s04e06.rus.lostfilm.tv.ogv House.M.D.s04e07.rus.lostfilm.tv.ogv House.M.D.s04e08.rus.lostfilm.tv.ogv
House.M.D.s04e09.rus.lostfilm.tv.ogv House.M.D.s04e10.rus.lostfilm.tv.ogv House.M.D.s04e11.rus.lostfilm.tv.ogv House.M.D.s04e12.rus.lostfilm.tv.ogv
House.M.D.s04e13.rus.[tfile.ru].ogg House.M.D.s04e14.rus.[tfile.ru].ogg House.M.D.s04e15.rus.[tfile.ru].ogg House.M.D.s04e16.rus.[tfile.ru].ogg

Задаём регулярное выражение подобное выражения sed, я хочу удалить всё начиная с суфикса rus и до конца строки, при этом заменить везде расширение на ogv, под эту задачу походит вот такое регулярное выражение

rename 's/rus.*/ogv/gi' House.M.D.s04e*
Доктор Хаус/s04$ ls
House.M.D.s04e01.ogv House.M.D.s04e04.ogv House.M.D.s04e07.ogv House.M.D.s04e10.ogv House.M.D.s04e13.ogv House.M.D.s04e16.ogv
House.M.D.s04e02.ogv House.M.D.s04e05.ogv House.M.D.s04e08.ogv House.M.D.s04e11.ogv House.M.D.s04e14.ogv
House.M.D.s04e03.ogv House.M.D.s04e06.ogv House.M.D.s04e09.ogv House.M.D.s04e12.ogv House.M.D.s04e15.ogv

Вот и всё, одна команда и сколько угодно файлов обработано

Утилита rename работает так, находит в имени файлов, а список файлов задаётся последним параметром, подстроку в заданном регулярном выражении, в моём случае

House.M.D.s04e16.rus.[tfile.ru].ogg House.M.D.s04e01.rus.lostfilm.tv.ogv

жирным выделена часть соответвующая выражению, а затем преобразует её к заданному виду, в моём случае заменяет её на подстроку ogv

Для примера часто требуется убрать символы подчёркивания из имён накачанных файлов, делается это так

rename 's/_/ /gi' *.avi *.ogv

По-моему всё просто, быстро и чётко

Файловый менеджер наутилус и просмотр превью фильмов в ogv

и что удивительно, по умолчанию Nautilus не имеет отображать превью фильмов в формате ogv (ogg умеет), но если имена файлов выглядят вот так, вот работает замечательно

Вот тут есть ещё примеры группового переименования файлов в Linux http://linsovet.com/mass-file-renaming

 

Комментариев 0
Нужна авторизация с помощью
Об авторе
Илья Илья

меня можно найти тут