Esto encontrará todos los archivos, pero ignorará los que comienzan con un punto, de modo que los archivos ocultos.
find /home/tom/project/ -type f \(-iname ".log.txt" ! -iname ".*" \)
EDIT: Si el por encima de los no funciona, esto debe hacer el truco. Tiene una mejor expresión regular.
find /home/tom/project/ \(! -regex '.*/\..*' \) -type f -name ".log.txt"
Edit2:
A continuación se excluirá las carpetas ocultas, pero buscará los archivos ocultos que tienen el patrón solicitado:
find /home/tom/project/ \(! -regex '.*/\..*/..*' \) -type f -name ".log.txt"
Edit3:
La solución grep :) si esto no funciona, estoy perdido :)
find /home/tom/project/ \(! -regex '.*/\..*/..*' \) -exec grep -l ".log.txt" {} \;
EDIT4:
¿Has probado las soluciones simples?
find /home/tom/project/ -type f -name ".log.txt"
O
find /home/tom/project/ -type f -name "*" -exec grep -l ".log.txt" {} \;
quiere decir directorios que no están ocultos y no tienen padres ocultos? –