Existem pelo menos 2 utilitários padrão para construir uma árvore de diretórios sombra de uma árvore existente, portanto, não há necessidade de escrever código aqui.
Primeiro há lndir(1)
a partir do xutils-dev
pacote. Ele usa links simbólicos para arquivos. Na página do manual:
NAME
lndir - create a shadow directory of symbolic links to another
directory tree
SYNOPSIS
lndir [ -silent ] [ -ignorelinks ] [ -withrevinfo ] fromdir [ todir ]
Uma alternativa talvez melhor é simplesmente usar cp
as opções certas, como sugere a resposta aceita. Vou apenas dar mais alguns detalhes úteis:
cp -al /src/dir /dest/dir # hard-links to leaf-files
cp -as /src/dir /dest/dir # symlinks to leaf-files
Se você não se preocupa em preservar todos os atributos (propriedades / permissões, horários), substitua a a
opção (equivalente a -dr --preserve=all
) por r
(apenas recursiva):
cp -rl /src/dir /dest/dir # hard-links to leaf-files
cp -rs /src/dir /dest/dir # symlinks to leaf-files