Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #
- # buscaBusca.sh
- # Autor: angeldp
- #
- # Sintaxis: buscaBusca.sh NombreArchivo
- # El script buscará en el directorio raíz cualquier objeto cuyo nombre incluya
- # el NombreArchivo indicado como parámetro. Si no lo encontrara lo indicará;
- # si hay coincidencias, dirá cuántas y mostrará la lista de archivos.
- # Además actualizará un fichero de log donde se recogerán parámetros como la
- # fecha, hora, término buscado y resultados de la búsqueda
- #
- clear
- # Función para controlar errores:
- error () {
- clear
- echo -e "Se ha producido un error:\n$1"
- read -n1 -s -p "Pulse cualquier tecla para finalizar la ejecución de $0." TECLA
- exit
- }
- # Controlo el número de parámetros:
- [ $# -eq 1 ] || error "Debe ejecutar el script con el nombre del archivo a buscar como parámetro. Solo se admite un nombre."
- # Advierto de que deberá ejecutarse como root
- [ "$USER" != "root" ] && error "Tiene que realizar la búsqueda como root, vuelva a ejecutar el script mediante sudo."
- echo -e "\n\nBuscando el término $1 en el sistema de archivos..."
- # Hago un ls recursivo buscando el término introducido como primer parámetro
- # y guardo el número de coincidencias en una variable.
- # La opción -1 de ls hace que se muestren los nombres de archivos en una columna.
- # Las opciones -i y -F de grep hacen que ignore mayúsculas/minúsculas y que
- # interprete el término de busqueda como un literal en vez de una expresión
- # regular.
- # wc -l cuenta las líneas del resultado (veces que aparece el término buscado.)
- RESULTADOS=`ls -A1R / 2> /dev/null | grep -iF "$1" | wc -l`
- #En otra variable guardaré la lista de coincidencias omitiendo los errores:
- LISTA=`ls -AR1 / 2> /dev/null | grep -iF "$1"`
- #Muestro por pantalla el resultado de la búsqueda:
- echo "Se han encontrado $RESULTADOS coincidencias de $1 en el sistema de archivos"
- echo -e "\n\nLista de archivos y carpetas:\n$LISTA \n"
- #Al final guardo la búsqueda en el archivo de log.
- echo -e "\n\t······oooooOOOO0000OOOOOooooo·····\n" >> "$HOME/Resultados de la busqueda.txt"
- date +"%A, %d de %B de %Y. A las %H horas %M minutos." >> "$HOME/Resultados de la busqueda.txt"
- echo -e "\nTérmino buscado:\t$1" >> "$HOME/Resultados de la busqueda.txt"
- echo -e "Resultados:\t$RESULTADOS" >> "$HOME/Resultados de la busqueda.txt"
- 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