On Sun, 2005-06-12 at 13:56, Bryan J. Smith wrote:
In a nutshell, you pipe in a list of files, and cpio automatically copies them -- _raw_ -- to another location. We typically use find from the current directory, and pass the "don't cross filesystems" option (- mount on almost all UNIX flavors, -xdev on newer ones). "cpio -p" does the rest, although the "-md" options preserve all mode/modification info, and "d" creates directories as necessary. You can use "v" to verbosely list the paths processed, and "u" for an unconditional overwrite.
As someone else mentioned, _no_ form of "cp" should be trusted to do the same.
I've never had a problem on systems that have GNU cp (i.e. Linux) using 'cp --one-file-system -a ...' to copy complete filesystems as exactly as possible. 'rsync --one-file-system -aH ...' will work too. I'm not sure if anyone mentioned that that file-oriented copies: tar, cpio, cp, rsync, etc. allow the target to be on a different filesystem type than the source, while dump does not, and dd reproduces the original filesystem.