Re: [CentOS] OT -- BASH

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



On Thu, 22 Jun 2006, James Pearson wrote:

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.

Because -print0 generates a NULL separated list - so grep will match .iso\0 in the string generated by find and hence not output any list for cpio to read ...

One workaround:

find . -depth -print | grep -v .iso$ | cpio -pmd /tmp/test

The -print0 command is typically used when find is passing filenames with spaces or other characters that require a shell escape.

If the filenames are all shell-safe, then -print0 is unnecessary. If there's a chance that even one name contains a space, however, then -print0 is your friend.

-- Paul Heinlein <heinlein@xxxxxxxxxx>
_______________________________________________
CentOS mailing list
CentOS@xxxxxxxxxx
http://lists.centos.org/mailman/listinfo/centos

[Index of Archives]     [CentOS]     [CentOS Announce]     [CentOS Development]     [CentOS ARM Devel]     [CentOS Docs]     [CentOS Virtualization]     [Carrier Grade Linux]     [Linux Media]     [Asterisk]     [DCCP]     [Netdev]     [Xorg]     [Linux USB]
  Powered by Linux