Advertisement
VictoriaLodochkina

bsh

Nov 14th, 2021
1,013
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.68 KB | None | 0 0
  1. #!/bin/sh
  2. #
  3. # Написать скрипт находящий в заданном каталоге и всех его подкаталогах
  4. # все файлы, владельцем которых является данный пользователь. Имя
  5. # владельца и каталог задаются пользователем в качестве первого и второго
  6. # аргумента командной строки.
  7. # Скрипт выводит результаты в файл (третий аргумент командной строки) в виде:
  8. # полный путь, имя файла, его рамер. На консоль выводится общее число просмотренных файлов.
  9. #
  10. # пользователь папка_поиска файл_записи
  11.  
  12.  
  13. #!/bin/bash
  14.  
  15. if [[ ! -d $2 ]] ;
  16. then
  17.     echo "Путь $2 не существует или не является каталогом"
  18.     exit 1
  19. fi
  20.  
  21. search ()
  22. {
  23.     if [ ! -r $2 ];
  24.     then #нет доступа
  25.         echo "$2 Ошибка. Нет Доступа"
  26.     else
  27.     for f in $(ls $2)
  28.     do
  29.         if [ -d $2/$f ]; then
  30.             search $1 "$2/$f" $3
  31.         else
  32.             if [ $1 = $( stat "$2/$f" -c %U ) ]; then
  33.                 if [ "$filescount" -eq "0" ]; then
  34.                     echo $2/$f $( stat $2/$f -c %s) >  "$3"
  35.                 else
  36.                     echo $2/$f $( stat $2/$f -c %s) >> "$3"
  37.                 fi
  38.             let "filescount=filescount+1"
  39.             fi
  40.         fi
  41.         done  
  42.     fi
  43. }
  44.  
  45. let "filescount=0"
  46. search $@ 2>/dev/null
  47. echo "$filescount файлов найдено"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement