On Wed, Feb 09, 2011 at 12:25:09AM -0700, Clint Pachl wrote:

> In the caveats section it states the following:
> 
> 
>      Passing the output of find to other programs requires some care:
> 
>            $ find . -name \*.jpg | xargs rm
>      or
>            $ rm `find . -name \*.jpg`
> 
>      would, given files ``important .jpg'' and ``important'', remove
>      ``important''.  Use the -print0 or -exec primaries instead.
> 
> 
> Is this an error? The language indicates that ``important'' will be
> removed (and possibly ``important.jpg''; it's not clear) when
> executing both above commands. Is this correct?
> 
> If it is correct, then I don't get what the caveat is. For example:
> 
> $ touch important important.jpg
> $ find . -name \*.jpg | xargs rm
> $ ls
> important
> 
> What does -print0 or -exec have to do with it?

You should read more carefully. There's a space in one of the filenames.

        -0tto

Reply via email to