Існує щонайменше 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