Guest User

Untitled

a guest
Apr 20th, 2014
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.87 KB | None | 0 0
  1. #!/bin/bash
  2. globina=${3:-3}
  3. globina=$3
  4. files=0
  5. dirs=0
  6. link=0
  7. socket=0
  8. pipe=0
  9. block=0
  10. depthCounter=0
  11. char=0
  12.  
  13. function pomoc {
  14. printf "uporaba skripte: ./Naloga2.sh akcija imenik globina\n akcije: drevo, stej, prostor\n"
  15. }
  16.  
  17. function tree {
  18. depth=$2
  19. fileName=""
  20. for i in `$1/*`
  21. do
  22. fileName="${i##*/}"
  23. if (($depthCounter != 0))
  24. then
  25. for i in $(seq 1 1 $depth)
  26. do
  27. printf "----"
  28. done
  29. fi
  30. if [ -d $i ];
  31. then
  32. printf "DIR $fileName $depth\n"
  33. if (($depth > 1))
  34. then
  35. ((depth = depth - 1))
  36. ((depthCounter = depthCounter + 1))
  37. tree $i $depth
  38. fi
  39. fi
  40. if [ -f $i ];
  41. then
  42. printf "FILE $fileName\n"
  43. fi
  44. if [ -L $i ];
  45. then
  46. printf "LINK $fileName\n"
  47. fi
  48. if [ -p $i ];
  49. then
  50. printf "PIPE $fileName\n"
  51. fi
  52. if [ -S $i ];
  53. then
  54. printf "SOCK $fileName\n"
  55. fi
  56. if [ -c $i ];
  57. then
  58. printf "CHAR $fileName\n"
  59. fi
  60. if [ -b $i ];
  61. then
  62. printf "BLOCK $fileName\n"
  63. fi
  64. done
  65. }
  66.  
  67. function count {
  68. givenDir=$1
  69. depth=$2
  70. for i in `$1/*`
  71. do
  72. if [ -d $i ]
  73. then
  74. ((dirs = dirs + 1))
  75. ((depth = depth - 1))
  76. count $i $depth
  77. fi
  78. if [ -c $i ]
  79. then
  80. ((char = char + 1))
  81. fi
  82. if [ -L $i ]
  83. then
  84. ((link = link + 1))
  85. fi
  86. if [ -f $i ]
  87. then
  88. (($files = $files + 1))
  89. fi
  90. if [ -b $i ]
  91. then
  92. ((block = block + 1))
  93. fi
  94. if [ -p $i ]
  95. then
  96. ((pipe = pipe + 1))
  97. fi
  98. if [ -S $i ]
  99. then
  100. ((socket = socket + 1))
  101. fi
  102. done
  103. printf "File: $files\nDir: $dirs\nLink: $link\nChar: $char\nBlock: $block\nPipe: $pipe\nSocket: $socket"
  104. }
  105.  
  106. function size {
  107. givenPath=$1
  108. cd $givenPath
  109. size=`du`
  110. size2=${size:0:-2}
  111. printf "$size2\n"
  112. }
  113.  
  114. case $1 in
  115. "drevo" )
  116. tree $2
  117. ;;
  118. "stej" )
  119. count $2 $globina
  120. ;;
  121. "prostor" )
  122. size $2
  123. ;;
  124. "pomoc" )
  125. pomoc
  126. ;;
  127. *)
  128. pomoc
  129. exit 42
  130. ;;
  131. esac
Add Comment
Please, Sign In to add comment