Advertisement
Guest User

Untitled

a guest
Mar 26th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.54 KB | None | 0 0
  1. #!/bin/bash
  2. #Wykorzystując program grep, napisać skrypt powłoki zliczający pliki
  3. #określonego typu (pliki zwykłe, katalogi, pliki specjalne blokowe i
  4. #znakowe, FIFO, dowiązania symboliczne, gniazda) we wskazanym katalogu.
  5. #Zaproponować sposób podawania typu plików. Postać wywołania skryptu:
  6.  
  7. if [ $1 = "--help" ]; then
  8. echo -e "Licznie plikow danego typu w katalogu.
  9. Składnia:
  10. licz_plik arg1 arg 2
  11. arg1 - nazwa katalogu do przeszukiwania
  12. arg2 - typ pliku
  13. Typy:
  14. -f - sprawdza, czy plik to plik zwykły,
  15. -d - sprawdza, czy plik to katalog,
  16. -c - sprawdza, czy plik to plik specjalny znakowy,
  17. -b - sprawdza, czy plik to plik specjalny blokowy,
  18. -p - sprawdza, czy plik to plik FIFO,
  19. -L - sprawdza, czy plik ma dowiązanie symboliczne
  20. -S - sprawdza, czy plik jest socketem
  21. Kody wyjścia:
  22. 1 - Skrypt wykonany pomyślnie
  23. -1 - Niepoprawna liczba argumentów
  24. -2 - Niepoprawny typ pliku
  25. "
  26. exit 0
  27. fi
  28.  
  29. if [ $2 != "-f" -a $2 != "-d" -a $2 != "-c" -a $2 != "-b" -a $2 != "-p" -a $2 != "-L" -a $2 != "-S" ]; then echo "Niepoprawnie podany typ pliku"; exit -2; fi
  30.  
  31. if [ $# -ne 2 ]; then echo "Niepoprawna liczba argumentów."; exit -1; fi
  32.  
  33. #echo `ls $1`
  34. n=0
  35. file_names=`ls $1`
  36. for file_name in $file_names ; do
  37. if [ $2 $1/$file_name ] ; then
  38. n=`expr $n + 1`
  39. #echo -e "$file_name \n"
  40. fi
  41. done
  42.  
  43. if [ $n = 0 ] ; then echo "Nie ma w tym katalogu plików określonego typu"
  44. else echo "W katalogu jest $n plików podanego typu"; fi
  45. exit 1;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement