If you use rsync, it will preserve directory hierarchies.
Another option is to use tar like this:
That creates a "tarball" of the source location and "pipes" it to another instance of tar that unpacks the tarball in the new location. The tarball itself is not perserved.
tar cpf - /path/to/some/location | (cd /path/to/new/location; tar xf -)
Rayana, if I had posted an "i don't know the answer to that question" response in every thread to which it applies, my post count would easily be pushing 100,000.