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:
Think about the order of evaluation.
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
GNU find has an implied print at the end, iff there has been no other print 'test." Not all versions of find does this.
In this context, by "print" I include any test that prints. -- Cheers John -- spambait 1aaaaaaa@xxxxxxxxxxxxxxxx Z1aaaaaaa@xxxxxxxxxxxxxxxx -- Advice http://webfoot.com/advice/email.top.php http://www.catb.org/~esr/faqs/smart-questions.html http://support.microsoft.com/kb/555375 You cannot reply off-list:-)