Существует как минимум 2 стандартные утилиты для построения теневого дерева каталогов существующего дерева, поэтому здесь не нужно писать код.
Сначала есть lndir(1)из xutils-devпакета. Он использует символические ссылки на файлы. Со страницы руководства:
NAME
lndir - create a shadow directory of symbolic links to another
directory tree
SYNOPSIS
lndir [ -silent ] [ -ignorelinks ] [ -withrevinfo ] fromdir [ todir ]
Возможно, лучшая альтернатива состоит в том, чтобы просто использовать cpправильные варианты, как предполагает принятый ответ. Я просто приведу еще несколько, надеюсь, полезных деталей:
cp -al /src/dir /dest/dir # hard-links to leaf-files
cp -as /src/dir /dest/dir # symlinks to leaf-files
Если вас не интересует сохранение всех атрибутов (владельцев / разрешений, времени), замените aпараметр (эквивалентный -dr --preserve=all) на r(только рекурсивный):
cp -rl /src/dir /dest/dir # hard-links to leaf-files
cp -rs /src/dir /dest/dir # symlinks to leaf-files