Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- globina=${3:-3}
- globina=$3
- files=0
- dirs=0
- link=0
- socket=0
- pipe=0
- block=0
- depthCounter=0
- char=0
- function pomoc {
- printf "uporaba skripte: ./Naloga2.sh akcija imenik globina\n akcije: drevo, stej, prostor\n"
- }
- function tree {
- depth=$2
- fileName=""
- for i in `$1/*`
- do
- fileName="${i##*/}"
- if (($depthCounter != 0))
- then
- for i in $(seq 1 1 $depth)
- do
- printf "----"
- done
- fi
- if [ -d $i ];
- then
- printf "DIR $fileName $depth\n"
- if (($depth > 1))
- then
- ((depth = depth - 1))
- ((depthCounter = depthCounter + 1))
- tree $i $depth
- fi
- fi
- if [ -f $i ];
- then
- printf "FILE $fileName\n"
- fi
- if [ -L $i ];
- then
- printf "LINK $fileName\n"
- fi
- if [ -p $i ];
- then
- printf "PIPE $fileName\n"
- fi
- if [ -S $i ];
- then
- printf "SOCK $fileName\n"
- fi
- if [ -c $i ];
- then
- printf "CHAR $fileName\n"
- fi
- if [ -b $i ];
- then
- printf "BLOCK $fileName\n"
- fi
- done
- }
- function count {
- givenDir=$1
- depth=$2
- for i in `$1/*`
- do
- if [ -d $i ]
- then
- ((dirs = dirs + 1))
- ((depth = depth - 1))
- count $i $depth
- fi
- if [ -c $i ]
- then
- ((char = char + 1))
- fi
- if [ -L $i ]
- then
- ((link = link + 1))
- fi
- if [ -f $i ]
- then
- (($files = $files + 1))
- fi
- if [ -b $i ]
- then
- ((block = block + 1))
- fi
- if [ -p $i ]
- then
- ((pipe = pipe + 1))
- fi
- if [ -S $i ]
- then
- ((socket = socket + 1))
- fi
- done
- printf "File: $files\nDir: $dirs\nLink: $link\nChar: $char\nBlock: $block\nPipe: $pipe\nSocket: $socket"
- }
- function size {
- givenPath=$1
- cd $givenPath
- size=`du`
- size2=${size:0:-2}
- printf "$size2\n"
- }
- case $1 in
- "drevo" )
- tree $2
- ;;
- "stej" )
- count $2 $globina
- ;;
- "prostor" )
- size $2
- ;;
- "pomoc" )
- pomoc
- ;;
- *)
- pomoc
- exit 42
- ;;
- esac
Add Comment
Please, Sign In to add comment