Rename
Утилита rename входит в стандартную поставку Debian, так что начнем с нее.
Код: Выделить всё
rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]
-n отобразить список файлов, которые будут переименованы, без переименования в итерации.
-f перезаписать уже существующие файлы.
perlexpr — шаблон для переименования.
Для того, чтобы выполнить переименование файлов согласно условию, выполним команду:
Код: Выделить всё
# rename 's/.sh/.sh.bak/g' *.sh
s=указывает, что требуется замещение.
/.sh/=Строка, которую будем замещать.
/.sh.bak/ = строка, на которую будем замещать
g=global, будем замещать все найденные вхождения.
С помощью rename можно быстро изменить регистр файлов. Например поднимем регистр файлов из примера:
Код: Выделить всё
# rename ‘y/a-z/A-Z/’ *
mmv — программа для массового перемещения, переименования, копирования, объединения файлов.
По умолчанию она не включена в состав Debian. Поставим ее:
Код: Выделить всё
# apt-get install mmv
Код: Выделить всё
# mmv \*.sh \#1.sh.bak
Теперь решим нашу задачу стандартной командой mv. Для этого нам прийдется немного попрограммировать в bash.
Код: Выделить всё
for i in *.sh;
do mv $i `basename $i sh`sh.bak;
done
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, если стоят соответствующие утилиты.