Mit GNU Coreutils (z. B. auf nicht eingebettetem Linux oder Cygwin) ist es so einfach wie
cp -a --attributes-only Dir1 Dir2
Oder komplizierter, aber mit einem einzigen Dateisystemdurchgang (für noch mehr Portabilität ~
sollte als $HOME
geschrieben werden )
find . \( -type d -exec mkdir -p "~/elsewhere/{}" \; \
-o -type f -exec touch "~/elsewhere/{}" \; \)
Die Komplexität hier ist die der booleschen Logik (die zum Lernen von einigem Vorteil sein kann) und der Priorität (auch gut zu wissen) und wie find
implementiert diese Konzepte mit einem impliziten AND zwischen -type
und anschließende Aktion, und ODER erscheint als -o
.