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


Если посмотреть man для rename в Ubuntu, то можно увидеть ее интересный формат:

rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]

Коротенькое словцо perlexpr означает, что rename поддерживает ШАБЛОНЫ!

# меняем .bak на .kab
rename 's/.bak$/.kab/' *.bak

# делаем все буквы маленькими
rename 'y/A-Z/a-z/' *

В Gentoo есть аналог:

ranamexm 's/.bak$/.kab/' *.bak

Можно также самому накатать простой скрипт rename.sh

#!/bin/bash

find . -name "*.xml" > list.tmp
while read name
do
   newname=`echo $name | awk '{print substr($0,1,length($0)-4)}'`.html
   mv "$name" "$newname"
done < list.tmp
rm list.tmp

Этот скрипт переименовывает все *.xml в *.html в текущем и
во всех подкаталогах ниже текущего.