find имеет опрятные логические переключатели, такие как -and и -not, которые вы можете использовать в своих интересах, чтобы найти подходящий файл с двумя правилами:
$ touch non_hidden_file.txt .hidden_file.txt somethings/.another_hidden_file.txt
$ find . -type f -name '*hidden_file*' -and \( -not -name ".*" \)
./non_hidden_file.txt
Как вы можете see, find использует два правила -name '*hidden_file*' и -and \( -not -name ".*" \), чтобы найти те имена файлов, которые соответствуют обоим условиям - имя файла с hidden_file в нем, но без ведущей точки. Обратите внимание на косые черты перед круглой скобкой - они используются для определения скобок в качестве аргументов find, а для определения подоболочки (что означает, что скобка означает иначе без косых черт)