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
Maintained by the ILUG website team. The aim of Linux.ie is to
support and help commercial and private users of Linux in Ireland. You can
display ILUG news in your own webpages, read backend
information to find out how. Networking services kindly provided by HEAnet, server kindly donated by
Dell. Linux is a trademark of Linus Torvalds,
used with permission. No penguins were harmed in the production or maintenance
of this highly praised website. Looking for the
Indian Linux Users' Group? Try here. If you've read all this and aren't a lawyer: you should be!