find with -print0 returns incorrect results

Razvan RACASANU razvanracasanu at gmail.com
Sat Dec 8 12:27:19 UTC 2007


Hi,

I'm having some problems using find with -print0: it is returning
different files depending on the position of -print0.

To illustrate this, suppose the current directory has 3 files: a.html,
a.css and a.js. From this directory I would like to list the file
names of all html and js files, but not those of css files.

If I try this:
    find . -type f -print0 -iname "*.html" -or -iname "*.js" | xargs -0
the result looks like this:
    ./a.html        ./a.js        ./a.css

If I try this:
    find . -print0 -type f -iname "*.html" -or -iname "*.js" | xargs -0
the result looks like this:
    .        ./a.html        ./a.css

If I try this:
    find . -type f -iname "*.html" -or -iname "*.js" -print0 | xargs -0
the result looks like this:
    ./a.js

Can anybody shed some light on what am I doing wrong?

Thanks,
Razvan RACASANU




More information about the users mailing list