Eu não sei exatamente quais ferramentas você está usando e como elas se comportam com links simbólicos, mas você pode "copiar" a árvore inteira usando links simbólicos (se quiser) automaticamente usando a opção -s
de cp
(ou -l
para links físicos).
Vamos dar uma olhada no exemplo abaixo.
. ├── 1 │ ├── s -> x │ ├── x │ ├── y │ └── z │ └── 1 └── 2 ├── a │ └── 2 ├── b └── c
Se você quiser que os arquivos comlml 1/
to 2/
no diretório atual, você pode simplesmente fazer:
cp -ans "$PWD/1/"* 2/
Agora 2/
se parece com:
. ... └── 2 ├── a │ └── 2 ├── b ├── c ├── s -> /home/przemoc/links/1/s ├── x -> /home/przemoc/links/1/x ├── y -> /home/przemoc/links/1/y └── z └── 1 -> /home/przemoc/links/1/z/1
Explicação das opções cp
usadas:
-
-a
ou--archive
preserva atributos, links e copia diretórios de forma recursiva (na verdade, é um alias de-dR --preserve=all
) -
-n
ou--no-clobber
evita sobrescrever arquivos existentes -
-s
ou--symbolic-link
cria links simbólicos em vez de copiar literalmente
Os caminhos do arquivo de origem devem ser absolutos nesse caso (é por isso que usei $PWD
), porque cp
"pode criar links simbólicos relativos apenas no diretório atual".
Espero que ajude um pouco.