Tengo que hacer este ejercicio
Hacer un shell-script BuscaFichero que busque recursivamente los directorios en los que aparece un fichero a
partir de un directorio dado. Tanto el nombre del fichero como el directorio de partida se indican por parámetro.
La sintaxis de la órden sería:
BuscaFichero <nombre_fichero> <directorio_inicial_busqueda>
El mensaje de salida debe ser exactamente el siguiente:
El fichero ???? se ha encontrado en los directorios:
????????
????????
????????
NOTA IMPORTANTE: El ejercicio deberá resolverse utilizando el recorrido de directorios mediante la
sentencia for y no se podrá utilizar ningún comando u opción extra que resuelva el ejercicio de forma automática.
Para poder resolver el ejercicio se recomienda utilizar, entre otros, el comando basename.
Y no soy capaz, lo que he hecho ha sido:
#!/bin/sh
echo "El fichero $1 se ha encontrado en los directorios:"
for i in "$2"/*
do
if test -d $i
then ./BuscaFichero $1 $i
elif test -f "$i"
then if test $(basename $1) = $i
then echo $i
fi
fi
done
pero al ejecutarlo con ./BuscaFichero dos ./Prueba
me sale
El fichero dos se ha encontrado en los directorios:
./BuscaFichero: 8: ./BuscaFichero: dos: not found
y no tengo ni idea xD Obviamente estoy empezando pero estoy atacado aquí y no puedo avanzar.