Массовое переименование файлов

Опубликовано 6 Июня, 2008 под тегами BASh, Ubuntu, BASh, Ubuntu

Часто бывает нужно переименовать группу файлов с однотипными именами по маске.

Например, вы скачали груду музыки, а все файлы вместо пробелов имеют в имени _ или, что тоже бывает, %20.

В фокусе массового переименования нам могут помочь две утилиты: rename и find. Обе стоят в ubuntu по умолчанию, но в любом случае apt-get нам поможет :)

За более подробными сведениями отсылаю к man find, man rename, и, скажем, http://www.regular-expressions.info/

Если коротко, то: find [-H] [-L] [-P] [path…] [expression] rename [-v] [-n] [-f] perlexpr [filenames]

Perlexpr - это выражение по стандарту regexp.

Чтобы переименовать группу файлов, скажем, все файлы *.ogg, содержащиеся в директории и поддиректориях /home/music, нужно выполнить:

$ find /home/music -iname "*.ogg" -execdir rename "s/from/to/" \{\} \;

За подробной информацией по синтаксису, опять же, отсылаю к манам.