Con GNU coreutils (por ejemplo, en Linux no integrado o Cygwin), es tan simple como
cp -a --attributes-only Dir1 Dir2
O de manera más complicada pero con un solo paso del sistema de archivos (para una portabilidad aún mayor ~
debe escribirse como $HOME
)
find . \( -type d -exec mkdir -p "~/elsewhere/{}" \; \
-o -type f -exec touch "~/elsewhere/{}" \; \)
La complejidad aquí es la de la lógica booleana (que puede ser de algún beneficio para aprender) y la precedencia (también es bueno saberlo) y cómo find
implementa estos conceptos con un AND implícito entre -type
y la acción subsiguiente, y O hacer una aparición como -o
.