Advertisement
angeldp

buscaBusca.sh

Jun 23rd, 2015
324
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.38 KB | None | 0 0
  1. #!/bin/bash
  2. #
  3. # buscaBusca.sh
  4. # Autor: angeldp
  5. #
  6. # Sintaxis: buscaBusca.sh NombreArchivo
  7. # El script buscará en el directorio raíz cualquier objeto cuyo nombre incluya
  8. # el NombreArchivo indicado como parámetro. Si no lo encontrara lo indicará;
  9. # si hay coincidencias, dirá cuántas y mostrará la lista de archivos.
  10. # Además actualizará un fichero de log donde se recogerán parámetros como la
  11. # fecha, hora, término buscado y resultados de la búsqueda
  12. #
  13. clear
  14. # Función para controlar errores:
  15. error () {
  16.     clear
  17.     echo -e "Se ha producido un error:\n$1"
  18.     read -n1 -s -p "Pulse cualquier tecla para finalizar la ejecución de $0." TECLA
  19.     exit
  20. }
  21. # Controlo el número de parámetros:
  22. [ $# -eq 1 ] || error "Debe ejecutar el script con el nombre del archivo a buscar como parámetro. Solo se admite un nombre."
  23. # Advierto de que deberá ejecutarse como root
  24. [ "$USER" != "root" ] && error "Tiene que realizar la búsqueda como root, vuelva a ejecutar el script mediante sudo."
  25. echo -e "\n\nBuscando el término $1 en el sistema de archivos..."
  26. # Hago un ls recursivo buscando el término introducido como primer parámetro
  27. # y guardo el número de coincidencias en una variable.
  28. # La opción -1 de ls hace que se muestren los nombres de archivos en una columna.
  29. # Las opciones -i y -F de grep hacen que ignore mayúsculas/minúsculas y que
  30. # interprete el término de busqueda como un literal en vez de una expresión
  31. # regular.
  32. # wc -l cuenta las líneas del resultado (veces que aparece el término buscado.)
  33. RESULTADOS=`ls -A1R / 2> /dev/null | grep -iF "$1" | wc -l`
  34. #En otra variable guardaré la lista de coincidencias omitiendo los errores:
  35. LISTA=`ls -AR1 / 2> /dev/null | grep -iF "$1"`
  36. #Muestro por pantalla el resultado de la búsqueda:
  37. echo "Se han encontrado $RESULTADOS coincidencias de $1 en el sistema de archivos"
  38. echo -e "\n\nLista de archivos y carpetas:\n$LISTA \n"
  39. #Al final guardo la búsqueda en el archivo de log.
  40. echo -e "\n\t······oooooOOOO0000OOOOOooooo·····\n"  >> "$HOME/Resultados de la busqueda.txt"
  41. date +"%A, %d de %B de %Y. A las %H horas %M minutos." >> "$HOME/Resultados de la busqueda.txt"
  42. echo -e "\nTérmino buscado:\t$1" >> "$HOME/Resultados de la busqueda.txt"
  43. echo -e "Resultados:\t$RESULTADOS" >> "$HOME/Resultados de la busqueda.txt"
  44. echo -e "Lista de objetos encontrados:\n$LISTA\n\n" >> "$HOME/Resultados de la busqueda.txt"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement