The find utility supports execution of a nominated command per file found.  The command argument list is terminated with a ';' parameter.

 

The enhanced GNU version specifies an alternative version of the –exec option using a '+' list terminator.  This option is provided to support an xargs-like batched execution of the nominated command resulting in greater efficiency.

 

It seems like find –exec ';' and find –exec '+' do not behave consistently with regard to '{}' argument expansion. 

 

An example:

 

mkdir /tmp/test

cd /tmp/test

touch a b

find . –type f –exec echo Prefix{}Suffix ';'

è Prefix./bSuffix

è Prefix./aSuffix

find . –exec echo Prefix{}Suffix '+'

è ./b ./a

 

Is the latter result correct?  I would have expected the same result as for the ';' version?

 

Richard White

Embedded

Expertise

 

Richard White, Director, Embedded Expertise Ltd

richard.white@embedded-expertise.com

t: +44 (0) 333 112 8740  m: +44 (0) 7973 393348