Существует как минимум 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