On Mon, 2007-12-10 at 23:23 +0200, Razvan RACASANU wrote: > Thanks for your answers, but I still have a question about this. > > So, if I understand correctly, -print0 is considered as just another > test (just like -iname) that is evaluated for each file according to > operator precedence. In this case, since -print0 always returns true, > shouldn't the following commands be equivalent: > > find . -type f -and -print0 -and \( -iname '*.html' -or -iname > '*.js' \) | xargs -0 > and > find . -type f -and \( -iname '*.html' -or -iname '*.js' \) -and > -print0 | xargs -0 > > The first one outputs: > ./a.js ./a.css ./a.html > The second one outputs: > ./a.js ./a.html No. Remember, -print0 prints immediately, so the only test that was applied before the print was "-type f" in the first one. In the second one, you did the "-iname" tests. Since they fail on the "a.css" file, the -print0 wasn't invoked for that file. ---------------------------------------------------------------------- - Rick Stevens, Principal Engineer rstevens@xxxxxxxxxxxx - - CDN Systems, Internap, Inc. http://www.internap.com - - - - Always remember you're unique, just like everyone else. - ----------------------------------------------------------------------