Нужна помощь в написании скрипта. Сама только начала недавно юникс разбирать, а уже куча заданий задали. Горю по срокам. Скрипт на bash нужен. Написать скрипт, который массово переименовывает файла, согласно правилам, хранящимся в файле RULES. В инете много чего перерыла, но все не то(((скрипт может работать в 3-х режимах: mv - сохраняет только итоговый результат, ср - сохраеняет первоначальный и итоговый и ср all - первоначальный, конечный и промежуточный. RULES задан так: foto photo user group 200, первый столбец - что переименовыванием, второй - на что. Файлы для переименовани нужно искать по user group 200, где юзер - владелец, гроуп - группа, 2-- - размер.Спасибо заране за помощь, оч жду ответа
Помогите со скриптом!
перечитано уже много чего))мне бы на примере таком разобраться....
воть что у меня получилось на данный момент:
#!/bin/bash
#massmv.sh
$ chmod +x massmv.sh
#массово переименовывает файлы в указанном каталоге
#правила переименования находятся в файле RULES
#правила применяются ТОЛЬКО к файлам
code=0 #код завершения при успешном переименовании
FRULES="" #файл, содержащий правила переименования
fname=""#файл в директории
pattern="" # маска (что сменить)
replace="" # замена (на что сменить)
owner="" # владелец файла
group="" # группа-владелец
size="" # размер
old_name=""
now_owner=""#текущий владелец
now_group=""#текущая группа
now_size=""#текущий размер файла
out="$sdir"
sdir=""
echo "Input source directiry"
read $sdir
cd $sdir
for filename in * #перебор всех файлов в текущем каталоге
do
#получение владельца, группы и размера
if [-f "$fname"]
then
now_owner=ls -l $fname | awk '{ print $3 }'
now_group=ls -l $fname | awk '{ print $4 }'
now_size=ls -l $fname | awk '{ print $5 }'
old_name=ls -l $fname | awk '{ print $5 }'
pattern=grep $FRULES | awk '{ print $1 }'
replace=grep $FRULES | awk '{ print $2 }'
owner=grep $FRULES | awk '{ print $3}'
group=grep $FRULES | awk '{ print $4 }'
size=grep $FRULES | awk '{ print $5 }'
fi
if [old_name==pattern && now_owner==owner && now_group==group && now_size==size]
then
#применяем правила из RULES
echo "$filename" | grep -q "$pattern"
if [ $? -eq $code ]
then
mv "$old_name" "$repalce"
fi
done
fi
if ["$repalce" -eq $code]
then
echo "$old_name файл переименован в $replace."
fi
exit 0
$ chmod +x massmv.sh
Я в скриптах не очень, но это тут зачем ?
ну, читала, что это для запуска скрипта
ну, читала, что это для запуска скрипта
Уберите её из скрипта.
Эту команду нужно выполнить в терминале, после создания скрипта, чтобы сделать файл massmv.sh исполняемым.
$ - это приглашение командной строки.
Выполняется перед запуском скрипта, а не в скрипте.ну, читала, что это для запуска скрипта