cp was not really a candidate for this task since
it did not dereference symbolic links, or preserve hard links either. Another
thing to consider was sparse files (files with holes).
cp has overcome these limitations; however, on a non-GNU
cp could still have problems. Also, you can't generate
small, portable archives using
% cp -a . newdir