Linux Bash.
Условие:
Написать скрипт находящий в заданном каталоге и всех его подкаталогах все файлы, владельцем которых является заданный пользователь. Имя владельца и каталог задаются пользователем в качестве первого и второго аргумента командной строки. Скрипт выводит результаты в файл (третий аргумент командной строки) в виде полный путь, имя файла, его размер. На консоль выводится общее число просмотренных файлов.
Код: Выделить всё
#!/bin/bash
if [[ ! -d $2 ]] ;
then
echo "Путь $2 не существует или не является каталогом"
exit 1
fi
search ()
{
if [ ! -r $2 ];
then #нет доступа
echo "$2 Ошибка. Нет Доступа"
else
for f in $(ls $2)
do
if [ -d $2/$f ]; then
search $1 "$2/$f" $3
else
if [ $1 = $( stat "$2/$f" -c %U ) ]; then
if [ "$filescount" -eq "0" ]; then
echo $2/$f $( stat $2/$f -c %s) > "$3"
else
echo $2/$f $( stat $2/$f -c %s) >> "$3"
fi
let "filescount=filescount+1"
fi
fi
done
fi
}
let "filescount=0"
search $@ 2>/dev/null
echo "$filescount файлов найдено"