lpr распечатывает, что ему отправляют через STDIN. Поэтому вам нужно вызывать lpr для каждого файла, найденного с помощью find:
find . -type f ! -name ".*" -print0 | xargs -0 lpr
-type f ищет файлы
! логично нет, следовательно ! -name ".*" пропустит скрытые файлы (с некоторой помощью из https://superuser.com/a/101012/195224)
-print0 разделяет отдельные имена файлов с \0 так что это также будет работать с именами файлов с пробелами в нем.
xargs выполняет lpr со списком имен файлов, которые он получает (-0 снова говорит, что \0 используется в качестве разделителя).
Эта команда выведет список не только точечных файлов, но и файлов с точечными каталогами.
Если вы также хотите исключить dotdirs, расширьте команду find до
find . -type f ! -regex ".*/\..*" ! -name ".*"
И, наконец, поскольку у некоторых версий lpr , очевидно, есть проблема с пустыми файлами, пропустите их также:
find . -type f ! -regex ".*/\..*" ! -name ".*" ! -empty
Как примечание: чтобы получить более качественный макет вашей распечатки (включая имя файла), вы должны заменить lpr на a2ps .