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?

There's a space in the first filename. "important .jpg".

Paul 'WEiRD' de Weerd

-- 
>++++++++[<++++++++++>-]<+++++++.>+++[<------>-]<.>+++[<+
+++++++++++>-]<.>++[<------------>-]<+.--------------.[-]
                 http://www.weirdnet.nl/                 

Reply via email to