Мы хотет переименовывать фаелы, да так, чтобы новое имя было рандомным.
Мы делат так -
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`;позволяет избежать таких проблем.