Exemplo da abordagem find . -type f ! -path $0
. Observe como o script relata somente o foo.sh
no diretório "d" . Não é o foo.sh
no diretório atual.
$ find . -print
.
./a
./b
./c
./foo.sh
./d
./d/foo.sh
$ cat foo.sh
#!/bin/bash
for f in $(find . -type f ! -path $0); do
echo $f
done
$ ./foo.sh
./a
./b
./c
./d/foo.sh
$
Como alternativa, tente for f in $(find . -type f | grep -v "^\./foo\.sh$"); do