在 Ubuntu 中,有没有办法在没有 unionfs 或 aufs 的情况下虚拟合并两个文件夹?

我在办公室有一个无法修改的源代码控制系统,它在令人遗憾的地方传播了许多文件。 我的 IDE 预计这些文件夹位于单个链接位置。 一般来说,我当然会简单地对任何东西进行符号链接,但是为了使观点更糟,一些文件夹必须递归组合。 我可以保证没有重叠的文件名,但我们正在讨论无数文件,比我手动完成的要多。

我已经检查了 unionfs 和 aufs,但它是一个商业设备,所以与内核无关(以及这些 wang chung 的“入门”文档)。

还有其他方法可以做到这一点吗?

10
2022-06-07 14:39:57
资源 分享
答案: 1

我不了解您具体使用的工具以及它们如何处理符号链接,但是您可以立即使用 -s 替代 cp (或 -l 用于硬链接)。


允许看看下面列出的实例。

.
├── 1
│   ├── s -> x
│   ├── x
│   ├── y
│   └── z
│       └── 1
└── 2
    ├── a
    │   └── 2
    ├── b
    └── c

如果您希望将一氧化碳符号链接 1/ 文档链接到当前目录中的 2/,那么您只需执行以下操作:

cp -ans "$PWD/1/"* 2/

现在 2/ 看起来像:

.
...
└── 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

使用的 cp 选项的说明:

  • -a--archive¢ 递归地保护属性、链接和复制目录(它实际上是 -dR --preserve=all 的别名)
  • -n--no-clobber¢ 防止覆盖现有文档
  • -s--symbolic-link¢ 建立符号链接而不是实际复制

在这种情况下,源文档课程需要是绝对的(这就是我使用 $PWD 的原因),因为 cp “只能在当前目录中制作家庭成员符号网络链接”。

15
2022-06-07 15:07:23
资源