Potresti fare qualcosa del tipo:
find . -type d > dirs.txt
per creare l'elenco delle directory, quindi
xargs mkdir -p < dirs.txt
per creare le directory sulla destinazione.
cd /path/to/directories &&
find . -type d -exec mkdir -p -- /path/to/backup/{} \;
Ecco una semplice soluzione usando rsync:
rsync -av -f"+ */" -f"- *" "$source" "$target"
- una riga
- nessun problema con gli spazi
- preservare i permessi
Ho trovato questa soluzione lì