[CentOS] OT -- BASH

Les Mikesell lesmikesell at gmail.com
Thu Jun 22 13:10:18 UTC 2006


On Thu, 2006-06-22 at 07:21, Robert wrote:
> Can someone explain why this:
>    find . -depth -print0 | cpio --null -pmd /tmp/test
> will copy all files in and below the current directory -and- this:
>    find . -depth -print | grep -v .iso$ | wc -l
> will count all the non-iso files -and- this:
>    find . -depth -print | grep  .iso$ | wc -l
> will count *only* the iso files -but- this:
> find . -depth -print0 | grep -v .iso$ | cpio --null -pmd /tmp/test
> doesn't copy *anything*?   
> Any suggestions for a work-around would also be most welcome.

This doesn't have much to do with bash except that you
could easily see the answer if you left off the last element
of that last pipeline so you could see the output from
grep.  You are feeding grep one long line with null
terminated filenames when it wants things one separate
lines.  You can let find do the selection:

find . -depth  ! -name '*.iso' -print0 | cpio ...
but I'd probably:
rsync -av --exclude '*.iso' . /tmp/test
instead.

-- 
  Les Mikesell
  lesmikesell at gmail.com





More information about the CentOS mailing list