按目标目录里的文件结构完整复制的Shell怎么写?

按目标目录里的文件结构完整复制的Shell怎么写?

如何写一个Shell,可以将源目标目录下的所有文件、链接、子目录里的内容完整的复制到目的路径下,能够保证目的路径下的东西根源目标目录下的内容完全一致?      
tar cvf - /sourcedir | cd targetdir;tar xvf -      
使用相对路径的 symbol link 不一定能够完全一致