> What should this do in your opinion? For me, print is something > quite different: That's because you're not using zsh. It prints each argument, using newline as an output separator. Also you could use print -N if you prefer NULs instead of newlines. print -N **/*.c | xargs -0 echo is equivalent to find -name "*.c" -print0 | xargs -0 echo But I digress.