Con GNU coreutils (ad es. su Linux non embedded o Cygwin), è semplice come
cp -a --attributes-only Dir1 Dir2
O in modo più complicato ma con un singolo passaggio del filesystem (per una portabilità ancora maggiore ~
dovrebbe essere scritto come $HOME
)
find . \( -type d -exec mkdir -p "~/elsewhere/{}" \; \
-o -type f -exec touch "~/elsewhere/{}" \; \)
La complessità qui è quella della logica booleana (che può essere di qualche beneficio da imparare) e della precedenza (anche buona da sapere) e come find
implementa questi concetti con un AND implicito tra -type
e l'azione successiva, e OPPURE apparire come -o
.