挂载并合并文件夹内容

挂载并合并文件夹内容

有没有办法将一个文件夹内容挂载到另一个文件夹?

假设我有 2 个包含以下内容的文件夹;

Folder1       Folder2
  file1       file2

我基本上想让Folder1 中Folder2 的所有内容可见。所以新的内容应该是这样的;

Folder1       Folder2
  file1       file2
  file2

我还希望当我对文件夹 2 进行任何更改时更新文件夹 1 的内容。假设我在Folder2 中创建了file3。我期待在它们两个下看到新文件。

Folder1       Folder2
  file1       file2
  file2       file3
  file3

所以一般规则应该是;

  • 如果您在Folder2 下创建/删除/修改任何文件,该文件也会在Folder1 下可见。
  • 如果您在文件夹 1 中创建/删除/修改任何文件(属于文件夹 2,例如删除文件 2),这些更改将在文件夹 2 中完成。
  • 用户不应在Folder2 下看到Folder1 的任何内容。

对于这种需求有什么解决方案吗?

谢谢。

答案1

尝试使用覆盖文件系统

mount -t overlay overlay Folder1 -o index=off,workdir=$(mktemp -d),upperdir=Folder2,lowerdir=Folder1

所有文件更改都将在“Folder1”和“Folder2”下可见。但如果您更改Folder1 原始文件(示例文件1),则更改也将在Folder2 上可见。

答案2

无论如何,我不知道直接执行您所要求的操作,如果和file1中都存在您当然会遇到问题。folder1folder2

您可以从 到 下的每个文件/目录创建链接folder2folder1这将需要 下的每个文件/目录都有一个链接folder2。您可以创建一个脚本来保持链接更新并删除死链接。

如果您使用硬链接,那么在进行目录列表等操作时这将是无缝的。

然后,您可以用来inotify监视folder1folder2触发硬链接的创建/删除。

相关内容