CPIO needs a list of files, normally you generate them with 'find', so that would work.
There's an old thread about this on comp.unix.solaris. Personally, I like my 'rsync' solution. :-) But reading the entire thread may be a good idea.
http://groups.google.com/group/comp.unix.solaris/browse_thread/thread/e84b458b3 ce4b3b8/
--
Darren
You can make it simple with the "find" command:
$> cd /<someDIR>
$> for i in `find * -type d`; do mkdir /<newDIR>/$i; done
This will look in the complete "someDIR" directory tree and find all the directories only in order. Then one at a time it will make a new directory in the "newDIR" and follow it down until complete.