avoid read-while loop... there are problems with filenames starting/ending with spaces...
better use
find ... -print0 | xargs -0 ... [eventually with -n1] find ... -print0 | xargs -0 ... [eventually with -n1]By the way, there are systems where 'print0' is a recognized parameter for the default find, but not '+'. RHEL 4.x comes to mind.
But if I understand you correctly on RHEL 4.X `print0` works but `-exec cmd {} +` doesn't.
Which is to say I disagree with op that it's better to rely on `exec cmd {} +` when it seems you're more likely to have `print0 and xargs -0` then that.