Stow é um pacote para manter árvores symlink. 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 dar o que você deseja.
Assumindo que essa árvore (top-X & X-sub-X são pastas e todas as subpastas que contêm um arquivo .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.
eu posso ligar simbolicamente todos .csv na base para outra árvore e tenho 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
Eu não posso testar agora, mas seria:
sudo find . -name "*.csv" -exec cp -Rs '{}' /path/to/Symlinked_base/
se -R não é suportado, o seguinte funciona? :
sudo find . -name "*.csv" -exec cp -parents -s '{}' /path/to/Symlinked_base/
Stow é um pacote para manter árvores symlink. 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 dar o que você deseja.
Tags command-line cp symlink