find . -type f | grep -i '[^a-z0-9\.\/_\-]'
Это будет соответствовать всем файлам, которые содержат символы, отличные от a-z , 0-9 , точку, косую черту (для каталогов), подчеркивание или дефис-минус.
Примечание. Это не будет работать, если файл (или путь) содержит символ новой строки, потому что при передаче по grep путь к файлу будет разделен на две части. Хотя это не очень распространено, это следует упомянуть.
Простое решение с помощью Zsh (для этого требуется setopt EXTENDED_GLOB):
ls -l **/*[^a-zA-Z0-9-_.]##*
** возвращается в каталоги, а * соответствует нулю или более вхождений любого символа. Отрицательный шаблон символов из белого списка должен совпадать хотя бы один раз (##).