[ILUG] Disadvantages of find -exec?

Niall O Broin niall at linux.ie
Tue Jan 13 15:33:34 GMT 2009


On 13 Jan 2009, at 14:40, Braun Brelin wrote:

> A few days ago I saw a thread regarding find where someone stated  
> that using
> find with -exec was a bad idea and to use -xargs instead.
> Can someone give me some opinions as to what specifically is the  
> drawback of
> -exec with find?  Just curious.

The disadvantage of using -exec is the starting of lots of processes,  
which for a process whose startup time is high compared to its runtime  
can be bad. I've never seen a version of find with a -xargs option - I  
guess you refer to passing the output of find (probably with -print0)  
to xargs )possibly with -0 to match -print0). I personally tend to use

COMMAND $(find +options)

quite a lot, if I know that the output of find won't be too long for  
the shell.  However, probably the niftiest variation is -exec with +  
instead of ;   i.e.

-exec COMMAND {} +

instead of

-exec COMMAND {} ;

which builds command lines with multiple arguments in a similar manner  
to xargs, and hence starts far fewer processes than the latter  
approach.  This is of course a shiny Gnewism - if you're stuck with  
older Unix variants, or even older Linu distributions, your find won't  
do this.


Niall




More information about the ILUG mailing list