Advertisement
Sergio_Istea

for_file-size.sh

May 14th, 2022
876
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.04 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. dir=$1
  4.  
  5. # si la cadena de la variable '$dir' contiene '/' al final
  6. # suprimirlo esto lo podemos lograr con expansion de variables
  7. # obteniendo la cantidad de caracteres de la cadena
  8. # y luego tomar el ultimo caracter y evaluarlo.
  9. # Tambien se podria usar 'regex' para evaluar el ultimo caracter
  10. # de la cadena.
  11.  
  12. for file in $dir/*;do
  13.     if [ -f "$file" ];then
  14.         # El comando grep con la opcion '-v' invierte su funcion
  15.         # omite salidas que contengan lo declarado en el patron.
  16.         duout=$(du -h $file | cut -d$'\t' -f 1 | grep -v "K")
  17.         # si la cadena de la variable tiene longitud 0 se pasa a la siguiente iteración
  18.         [ ${#duout} -eq 0 ] && continue
  19.            
  20.     else
  21.         # si el elemento no es un fichero
  22.         # se pasa a la siguiente iteración
  23.         continue
  24.    
  25.     fi
  26.    
  27.     # Se toma el tamaño de la cadena de la variable '$duout'
  28.     stsize=${#duout}
  29.    
  30.     # se completa el argumento '1-n' con el valor de '$stsize' menos 1.
  31.     filesize=$(echo $duout | cut -c 1-$(($stsize-1)))
  32.     if [ $filesize -gt 400  ]; then
  33.  
  34.         echo "$file"
  35.     fi
  36. done
  37.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement