lpr imprime, o que é enviado para ele via STDIN. Então você precisa invocar lpr para cada arquivo encontrado por find:
find . -type f ! -name ".*" -print0 | xargs -0 lpr
-
-type fprocura arquivos -
!não é lógico, portanto,! -name ".*"omitirá arquivos ocultos (com alguma ajuda do link ) -
-print0separa os nomes de arquivos individuais com, de modo que isso também funcionará com nomes de arquivos com espaços em branco.xargs -
lprfinalmente executa-0com a lista de nomes de arquivos que recebe (informa novamente quefindlpré usado como um delimitador).
Este comando irá listar apenas arquivos não-ponto, , mas também aqueles em dirs .
Se você também quiser excluir dotdirs , estenda o comando lpr para
find . -type f ! -regex ".*/\..*" ! -name ".*"
E, finalmente, como algumas versões do a2ps têm obviamente um problema com arquivos vazios , omita essas também :
find . -type f ! -regex ".*/\..*" ! -name ".*" ! -empty
Como um sidenote: Para obter um layout melhor de sua impressão (inclui o nome do arquivo), você deve considerar substituir %code% by %code% .