#!/bin/bash
#*Ejercicio 5.* Se desea sumar el espacio ocupado por un usuario en un
#directorio y todos sus subdirectorios. Para ello, deben sumarse los tamaños
#de todos los archivos de ese usuario en esa rama de directorios.
#El script recibirá como parámetros el nombre del usuario y el nombre del
#directorio.
#Validará que el usuario pertenezca al sistema, y que el nombre de
#directorio recibido sea efectivamente un directorio.
#Presentará el resultado total en bytes, Kbytes y Mbytes enteros.
# *Sugerencia:* usar el comando find con listado largo; el tamaño de archivo
#en el listado largo está entre las columnas 47 y 56.
if [ $# -gt 2 ] #comprobar número de parámetros introducidos
then #gracias a Alejandro por sus buenas formas
echo "¡¡Horror!! Uso "$0" "
exit
fi
usuario=$1
carpeta=$2
total=0
echo $usuario
echo $carpeta
existeusuario=`id $usuario 2>/dev/null`
if [ "$existeusuario" == "" ]
then
echo "El usuario no existe"
else
if [[ -d $carpeta ]]
then
#echo "La carpeta sí existe"
find $carpeta -user $usuario -printf "%s\n" > tamano.txt
while read linea
do
total=`expr $total + $linea`
done < tamano.txt
echo "Número de bytes: $total"
kbytes=`echo "scale=0;$total/1024" | bc`
echo "Número de kilobytes: $kbytes"
mbytes=`echo "scale=0;$kbytes/1024" | bc`
echo "Número de megabytes: $mbytes"
else
echo "La carpeta no existe"
fi
fi
#*Ejercicio 5.* Se desea sumar el espacio ocupado por un usuario en un
#directorio y todos sus subdirectorios. Para ello, deben sumarse los tamaños
#de todos los archivos de ese usuario en esa rama de directorios.
#El script recibirá como parámetros el nombre del usuario y el nombre del
#directorio.
#Validará que el usuario pertenezca al sistema, y que el nombre de
#directorio recibido sea efectivamente un directorio.
#Presentará el resultado total en bytes, Kbytes y Mbytes enteros.
# *Sugerencia:* usar el comando find con listado largo; el tamaño de archivo
#en el listado largo está entre las columnas 47 y 56.
if [ $# -gt 2 ] #comprobar número de parámetros introducidos
then #gracias a Alejandro por sus buenas formas
echo "¡¡Horror!! Uso "$0" "
exit
fi
usuario=$1
carpeta=$2
total=0
echo $usuario
echo $carpeta
existeusuario=`id $usuario 2>/dev/null`
if [ "$existeusuario" == "" ]
then
echo "El usuario no existe"
else
if [[ -d $carpeta ]]
then
#echo "La carpeta sí existe"
find $carpeta -user $usuario -printf "%s\n" > tamano.txt
while read linea
do
total=`expr $total + $linea`
done < tamano.txt
echo "Número de bytes: $total"
kbytes=`echo "scale=0;$total/1024" | bc`
echo "Número de kilobytes: $kbytes"
mbytes=`echo "scale=0;$kbytes/1024" | bc`
echo "Número de megabytes: $mbytes"
else
echo "La carpeta no existe"
fi
fi
No hay comentarios:
Publicar un comentario