Podrías hacer algo como:
find . -type d > dirs.txt
para crear la lista de directorios, entonces
xargs mkdir -p < dirs.txt
para crear los directorios en el destino.
cd /path/to/directories &&
find . -type d -exec mkdir -p -- /path/to/backup/{} \;
Aquí hay una solución simple usando rsync:
rsync -av -f"+ */" -f"- *" "$source" "$target"
- una línea
- sin problemas con los espacios
- conservar permisos
Encontré esta solución allí