将树中的某些文件符号链接到另一个文件夹并保留文件夹结构

将树中的某些文件符号链接到另一个文件夹并保留文件夹结构

假设此树(top-X 和 tX-sub-X 是文件夹,并且所有子文件夹都包含 .csv 和各种其他文件扩展名。)

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

以及包含 .csv 和各种其他文件扩展名的所有子文件夹。

我可以将基础中的所有 .csv 符号链接到另一棵树吗:

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

我现在无法测试它,但会:

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

如果 -R 不受支持,以下内容会起作用吗? :

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

答案1

Stow 是一个用于维护符号链接树的软件包。您可以使用 --no-folding 选项在目标位置创建目录,而不是链接目录本身 - 这样应该可以实现您的要求。

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

相关内容