É bom que o Ubuntu cptenha esse recurso, mas se você se encontrar em uma máquina que não possui (o estilo BSD cpnão possui, por exemplo, o OS X também não), é muito fácil fazer isso find. Aqui está como uma linha dupla (para facilitar a leitura):
% cd original_dir
% find . -type d -exec mkdir -p ../copy_dir/{} \;
% find . -type f -exec touch ../copy_dir/{} \;
Se copy_dirjá existir, você pode pular o -pargumento para mkdirque findele percorrerá a árvore de diretórios de cima para baixo. Para trabalhos grandes, você pode economizar mais ou menos um milissegundo, encerrando os comandos com, em +vez de \;se o findsuportar (provavelmente).
Edit: Os comandos acima negligenciados para manipular links simbólicos, que podem ser copiados com uma terceira execução de find( não termine esta com +):
% find . -type l -exec cp -R {} ../copy_dir/{} \;