我有一个源代码控制系统在工作,我无法修改它在不幸的地方散布了一堆文件。我的 IDE 期望这些文件夹位于一个统一的位置。通常我只会对所有内容进行符号链接,但更糟糕的是,某些文件夹必须递归合并。我保证没有重叠的文件名,但我们谈论的是数千个文件,比我手工做的要多。
我已经研究过 unionfs 和 aufs,但它是一台公司机器,所以不用考虑内核(更不用说这些 wang chung 的“入门”文档了)。
有没有另一种方法可以做到这一点?
小智 14
我不知道您正在使用的工具以及它们如何处理符号链接,但您可以使用符号链接(或硬链接,如果需要)自动“复制”整个树,使用-s选项cp(或-l硬链接)。
让我们看看下面的例子。
.
???1
? ???s -> x
? ???X
? ???是
? ???z
? ???1
???2
???一种
? ???2
???乙
???C
如果您希望将符号链接1/文件2/放在当前目录中,那么您只需执行以下操作:
cp -ans "$PWD/1/"* 2/
Run Code Online (Sandbox Code Playgroud)
现在2/看起来像:
.
...
???2
???一种
? ???2
???乙
???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
使用cp选项的说明:
-a或以--archive-dR --preserve=all)-n或--no-clobber-s或--symbolic-link在这种情况下,源文件路径必须是绝对的(这就是我使用的原因$PWD),因为cp“只能在当前目录中建立相对符号链接”。