Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Shell:Realizati un program shellscript ce primeste ca argument un nume de director S.
- #Scriptul va parcurge recursiv directorul S si va calcula spatiul total ce se poate obtine daca se vor sterge fisierele #duplicate.
- #Se considera ca doua fisiere sunt duplicate daca au aceeasi dimensiune si nume.
- cale_temp=nimic
- fisier_temp=nimic
- prezent=0
- limita=1
- total=0
- recursiv() {
- for i in `ls $1`
- do
- if test -f $1/$i
- then
- if [ `wc -c $cale_temp | awk '{print $1}'` -eq `wc -c $1/$i | awk '{print $1}'` -a `echo $fisier_temp` = `echo $i` -a `echo $cale_temp` != `echo $1/$i` ]
- then
- prezent=$((prezent + 1))
- fi
- elif test -d $1/$i
- then recursiv $1/$i
- fi
- done
- }
- recursiv_principal(){
- for j in `ls $1`
- do
- if test -f $1/$j
- then
- cale_temp=$1/$j
- fisier_temp=$j
- recursiv $1
- if [ $prezent -ge $limita ]
- then
- total=$((total + prezent * `wc -c $1/$j | awk '{print $1}'`))
- prezent=0
- fi
- elif test -d $1/$j
- then recursiv_principal $1/$j
- fi
- done
- }
- recursiv_principal $1
- echo "Numarul de bytes care ar putea fi eliberati = "$total
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement