Skip to content

Скрипт для генерации имен и пакетного ренейма файлов.

Мы хотет переименовывать фаелы, да так, чтобы новое имя было рандомным.

Мы делат так -

if [ -z "$1" ]
then
     echo "Использование: gen-names.sh [директория в которой делаем переименование]";
exit 0;
fi

cd ${1}
summfiles=`ls|wc -l`
array_names=(`pwgen -s 12 $summfiles`)
count=0
for filename in *;
do
namegen=${array_names[$count]}
newfilename=`echo "${filename}" | sed -r "s/(.*)\.(.*)/${namegen}.\2/"`
mv "./${filename}" "${newfilename}"
count=$(expr $count + 1)
done

И всё збс.

Раньше получал список файлов при помощи ls, но скрипт ломался если в имени файла были пробелы.
Конструкция for filename in *; вместо for filename in `ls`;позволяет избежать таких проблем.

Leave a Reply

Your email address will not be published. Required fields are marked *

π