Vincule simbolicamente algum arquivo de uma árvore a outra pasta e conserve a estrutura da pasta

Vincule simbolicamente algum arquivo de uma árvore a outra pasta e conserve a estrutura da pasta

Supondo esta árvore (top-X e tX-sub-X são pastas e todas as subpastas contendo um .csv e várias outras extensões de arquivo).

Base
├── top-1
│   ├── t1_sub-1 
│   ├── t1_sub-2 
│   └── t1_sub-3 
└── top-2
    ├── t2_sub-1
    ├── t2_sub-2
    └── t2_sub-3

e todas as subpastas contendo um .csv e várias outras extensões de arquivo.

posso vincular todos os .csv na base a outra árvore e ter isto:

Symlinked_base
├── top-1 #directories aren't symlink
│   ├── t1_sub-1 #contains only .csv symlink
│   ├── t1_sub-2 
│   └── t1_sub-3 
└── top-2
    ├── t2_sub-1
    ├── t2_sub-2
    └── t2_sub-3

Não posso testar agora, mas faria:

sudo find . -name "*.csv" -exec cp -Rs '{}' /path/to/Symlinked_base/

se -R não for compatível, o seguinte funcionaria? :

 sudo find . -name "*.csv" -exec cp -parents -s '{}' /path/to/Symlinked_base/

Responder1

Stow é um pacote para manter árvores de links simbólicos. Você pode usar a opção --no-folding para criar diretórios no destino em vez de vincular os próprios diretórios - isso deve fornecer o que você deseja.

https://www.gnu.org/software/stow/manual/stow.html

informação relacionada