find with -print0 returns incorrect results

Luciano Rocha strange at nsk.no-ip.org
Mon Dec 10 21:31:29 UTC 2007


On Mon, Dec 10, 2007 at 11:23:17PM +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
> 

No, because tests are evaluated in order:

1. Is type f? yes. print0? yes (always yes). ...
2. Is type f? yes. ends with html or js? yes. print0? yes.

-- 
lfr
0/0
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/fedora-list/attachments/20071210/79e1cd49/attachment-0001.sig>


More information about the fedora-list mailing list