PNGOUT is supposedly more efficiant than OptiPNG which is available in most Linux packages repositories, but it doesn’t support recursive optimization of multiple files. Here is a simple way of doing it using find with exec parameter:
find . -iname "*.png" -exec pngout {} ;