find with -print0 returns incorrect results

Razvan RACASANU razvanracasanu at gmail.com
Mon Dec 10 21:23:17 UTC 2007


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

Thanks,
Razvan RACASANU




More information about the users mailing list